Мне нужно загрузить 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});
})
};
Проблема в том, что данныене «извлекаются» из полезной нагрузки, и обещание отклоняется при попытке создать буфер.Кто-нибудь может мне помочь с примером, как обращаться с массивными буферами в хапи?