如何通过多部分请求上传 Hapi.Js 中的图像?
How to upload images in Hapi.Js via multipart request?
如何使用 hapi 在 node.js 中创建一个 API 并接受来自客户端的多部分请求?我找到了 pez,但我真的不知道它是什么,也不知道它是如何工作的,因为它并没有真正提供任何描述或文档。
我在 Express 中使用 multer multer 提供了类似的服务,或者它可能与 pez 相同?
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);
});
此代码适用于多部分请求,您需要提及允许的负载类型。
我设法制作了一个小库来解析 javascript 中的多部分请求,一般来说,代码可用 here。
如何使用 hapi 在 node.js 中创建一个 API 并接受来自客户端的多部分请求?我找到了 pez,但我真的不知道它是什么,也不知道它是如何工作的,因为它并没有真正提供任何描述或文档。
我在 Express 中使用 multer multer 提供了类似的服务,或者它可能与 pez 相同?
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);
});
此代码适用于多部分请求,您需要提及允许的负载类型。
我设法制作了一个小库来解析 javascript 中的多部分请求,一般来说,代码可用 here。