【问题标题】:How to upload images in Hapi.Js via multipart request?如何通过多部分请求在 Hapi.Js 中上传图像?
【发布时间】:2017-11-14 16:32:51
【问题描述】:

如何使用 hapi 在 node.js 中创建 API 并接受来自客户端的多部分请求?我找到了pez,但我真的不知道它是什么,也不知道它是如何工作的,因为它并没有真正提供任何描述或文档。

我在 Express 中使用 multer multer 提供了类似的服务,或者可能与 pez 相同?

【问题讨论】:

  • @GabrielBleu 我不这么认为,我读过这个问题,我的问题是如何使用分段上传。并备份我的问题 pez 没有提供任何文档或任何关于如何使用它的描述。
  • 你读过票数最高的答案吗?

标签: node.js multipartform-data hapijs


【解决方案1】:
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);
});

此代码适用于多部分请求,您需要提及允许的有效负载类型。

【讨论】:

    【解决方案2】:

    我设法制作了一个小库来解析javascript中的多部分请求,代码可用here

    【讨论】:

      猜你喜欢
      • 2014-11-09
      • 2011-11-27
      • 1970-01-01
      • 2019-12-19
      • 1970-01-01
      • 2018-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多