2017-11-03 7 views
0

hapiを使用してnode.jsでAPIを作成し、クライアントからのマルチパートリクエストを受け入れる方法は?私はpezを見つけましたが、実際に何が分かっているのか分からず、説明や文書を実際に提供していないので、どのように動作するのか知っています。マルチパートリクエストでHapi.Jsに画像をアップロードするには?

multer multerを使用してExpressで同様のサービスを行ったことがありますか、それともpezと同じですか?

+0

[nodejsとHAPIを使用してファイルをアップロードする方法](https://stackoverflow.com/questions/21823379/how-to-upload-files-using-nodejs-and-hapi) –

+0

@GabrielBleu i私はその質問を読んだことがあると私の質問は、マルチパートを使用してアップロードする方法です。私の質問をバックアップするには、それを使用する方法についてのドキュメントや説明はありません。 –

+0

あなたは一番上の投票回答をお読みになりましたか? –

答えて

0

私は一般的にjavascriptでマルチパートリクエストを解析するために少しのライブラリを作ることができ、コードはhereです。

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); 
}); 

このコードはマルチパートリクエストに対して機能します。許容されるペイロードのタイプについて言及する必要があります。

関連する問題