誰かが私に速達でPOSTされたフォームデータを取得するための推奨される(最新の)方法を教えてもらえますか?.
多くのチュートリアル/投稿などではbodyParserについて説明していますが、これはExpressや他のブログなどにバンドルされなくなり、urlencodedを直接使用することを推奨していますが、現在はこれも利用できません。
これらのフレームワークまたはテクノロジーに関する正確な情報を見つけようとするのが私の頭です。
ところで私が興味を持っているのは、非常にシンプルで小さなフォームのデータです
body-parser
からnpm-install
をインストールする必要があります。今では、別個のミドルウェアとして提供されています。
その後、app.jsに次の行を追加します
var bodyParser = require('body-parser');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded());
// in latest body-parser use like below.
app.use(bodyParser.urlencoded({ extended: true }));
post
リクエストをobject
として解析します。 req.body
で変数を取得します。
post
要求ハンドラー。
app.post('/post',function(request,response){
console.log(request.body) //you will get your data in this as object.
})
上記の答えは、具体的に尋ねられた質問に対するもので、OPはbodyParser
の一部ではなくなったexpress
(非推奨)を探していました。
質問のタイトルは非常に一般的であり、回答にはform-data
のすべての側面が含まれていないため、@ StLiaの回答を編集として配置します。
複雑で一般的に大きな性質のため、これはマルチパートボディを処理しません。マルチパートボディの場合、次のモジュールに興味があるかもしれません。
それにexpress-formidableモジュールを使用できます。次のコマンドで「express-formidable」をインストールしますnpm install express-formidable
簡単な例は次のとおりです
const express = require('express');
const formidable = require('express-formidable');
var app = express();
app.use(formidable());
app.post('/upload', (req, res) => {
//req.fields contains non-file fields
//req.files contains files
res.send(JSON.stringify(req.fields));
});
README of body-parser から:
複雑で一般的に大きな性質のため、これはマルチパートボディを処理しません。
上記はx-www-form-urlencoded
およびjson
で機能しますが、multipart
では機能しません。 form-data
は、ヘッダーmultipart/form-data
を持つmultipart
でもあります。
form-data
の場合、最善の解決策は express-formidable を使用することです。