如何使用hapi在node.js中创建API并接受来自客户端的多部分请求?我找到了pez,但我真的不知道它是什么,知道它是如何工作的,因为它没有真正提供任何描述或文档。
我使用multer multer在Express中提供了类似的服务,或者也许和pez一样?
答案 0 :(得分:0)
let fs = require('fs');
let Hapi = require('hapi');
letserver = Hapi.createServer('localhost', Number(process.argv[2] || 8080));
server.route({
method: 'POST',
path: '/submit',
config: {
payload: {
output: 'stream',
parse: true,
allow: 'multipart/form-data'
},
handler: function (request, reply) {
let data = request.payload;
if (data.file) {
let name = data.file.hapi.filename;
let path = __dirname + "/uploads/" + name;
let file = fs.createWriteStream(path);
file.on('error', function (err) {
console.error(err)
});
data.file.pipe(file);
data.file.on('end', function (err) {
let ret = {
filename: data.file.hapi.filename,
headers: data.file.hapi.headers
}
reply(JSON.stringify(ret));
})
}
}
}
});
server.start(function () {
console.log('info', 'Server running at: ' + server.info.uri);
});
此代码适用于多部分请求,您需要提及允许的有效负载类型。
答案 1 :(得分:0)
我设法创建一个小库来解析javascript中的多部分请求,代码可用here。