[英]How to handle arrayBuffer in hapi.js?
我需要將 arrayBuffer 上傳到服務器並將其保存到文件中。 我在客戶端使用 axios,hapi js 作為服務器。 我不知道如何從 hapi 處理程序中的請求中提取數據。
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});
})
};
問題是數據沒有從有效載荷中“提取”出來,並且在嘗試創建緩沖區時承諾被拒絕。 有沒有人可以幫助我舉例說明如何在 hapi 中處理數組緩沖區?
要使有效負載成為可讀流的實例,您需要將 parse 設置為 false,從而返回未修改的流。
payload: {
output: 'stream',
maxBytes: 50 * 1024 * 1024,
parse: false
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.