Как обращаться с arrayBuffer в hapi.js? - PullRequest
0 голосов
/ 10 апреля 2019

Мне нужно загрузить arrayBuffer на сервер и сохранить его в файл.Я использую Axios на стороне клиента, и HAPI JS в качестве сервера.Я не знаю, как извлечь данные из запроса в обработчике хапи.

Код Axios

const config = {
                    data: image //image- arraybuffer object (UInt8)
                };

 axios.post(HOST_URL + '/upload', config)

Маршрутизатор и обработчик Hapi

const fs = require('fs');
var Readable = require('stream').Readable;
var _ = require('underscore');
...
 server.route({
        path: '/upload',
        method: 'POST',
        options: {
            payload: {
                output: 'stream',
                maxBytes: 50 * 1024 * 1024
            }
        },
        handler: async (req, h) => {
            const { payload } = req;
            const response =  handleFileUpload(payload,h);
            return response;
        }
    });
    const handleFileUpload = (p,h) => {
        return new Promise((resolve, reject) => {
            var imagestream = new Readable;
            imagestream.push(new Buffer(_.values(p)));//problem here!!!
            imagestream.push(null);
            let filepath = 'D:\\tmp\\'+"image.nii"
            imagestream.pipe(fs.createWriteStream(filepath));
            return h.response({"ok":true});
        })
    };

Проблема в том, что данныене «извлекаются» из полезной нагрузки, и обещание отклоняется при попытке создать буфер.Кто-нибудь может мне помочь с примером, как обращаться с массивными буферами в хапи?

...