私はエクスプレス4.0を使用しています、そして私はボディパーサーがエクスプレスコアから取り出されたことを知っています、私は推奨された代替品を使用しています、しかし私は得ています
body-parser deprecated bodyParser: use individual json/urlencoded middlewares server.js:15:12 body-parser deprecated urlencoded: explicitly specify "extended: true" for extended parsing node_modules/body-parser/index.js:74:29
このミドルウェアはどこにありますか。または私はこのエラーを受けていないのですか?
var express = require('express');
var server = express();
var bodyParser = require('body-parser');
var mongoose = require('mongoose');
var passport = require('./config/passport');
var routes = require('./routes');
mongoose.connect('mongodb://localhost/myapp', function(err) {
if(err) throw err;
});
server.set('view engine', 'jade');
server.set('views', __dirname + '/views');
server.use(bodyParser());
server.use(passport.initialize());
// Application Level Routes
routes(server, passport);
server.use(express.static(__dirname + '/public'));
server.listen(3000);
2014-06-19の時点で、bodyParser()
コンストラクタ の使用は 非推奨 となっています。
app.use(bodyParser()); //Now deprecated
メソッドを個別に呼び出す必要があります
app.use(bodyParser.urlencoded());
app.use(bodyParser.json());
等々。
まだurlencoded
で警告を受けているのなら、使う必要があります。
app.use(bodyParser.urlencoded({
extended: true
}));
extended
configオブジェクトキーは、デフォルト値を持たなくなったため、明示的に渡す必要があります。
Express> = 4.16.0を使用している場合、ボディパーサーはメソッドexpress.json()
およびexpress.urlencoded()
の下に再追加されました。
欲しい ゼロ警告 ?このように使用してください。
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
説明 :extended
オプションのデフォルト値は廃止されました。つまり、trueまたはfalseの値を明示的に渡す必要があります。
Expressのより古いバージョンでは、我々は使用しなければなりませんでした:
app.use(express.bodyparser());
ボディパーサーはnodeとexpressの間のミドルウェアだったからです。今、私たちはそれを使う必要があります:
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
body-parserは、フォームの入力を読み取り、
req.body
'body-parser'を介してアクセス可能なjavascriptオブジェクトとして保存する高速ミドルウェアです(npm install --save body-parser
経由)。詳細については、以下を参照してください。 https://github.com/expressjs/body-parser
var bodyParser = require('body-parser');
app.use(bodyParser.json()); // support json encoded bodies
app.use(bodyParser.urlencoded({ extended: true })); // support encoded bodies
extended
がtrueに設定されている場合、収縮した(圧縮された)ボディは膨張します。 extended
がfalseに設定されている場合、収縮したボディは拒否されます。
Express-generatorを使うことでスケルトンプロジェクトが生成されるというあなたの意見は何ですか?without deprecated messages
はあなたのログに現れました
このコマンドを実行
npm install express-generator -g
それでは、このコマンドをyour Node projects folder
に入力して、新しいExpress.jsスターターアプリケーションを作成します。
express node-express-app
そのコマンドは、expressに、node-express-app
という名前の新しいNode.jsアプリケーションを生成するように指示します。
次に、コマンドを使用してGo to the newly created project directory
、install npm packages
およびstart the app
cd node-express-app && npm install && npm start
追加中に見つけました
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: true
}));
手助けをしてください、時々それはエクスプレスがそれをどのように扱うかを決めるのはあなたの質問の問題です。
例えば、あなたのパラメータは本体ではなく _ url _ で渡されるかもしれません。
そのような場合は、 body と url の両方のパラメータを取得し、利用可能な方を使用する必要があります(以下の場合はbodyパラメータを優先します)。
app.route('/echo')
.all((req,res)=>{
let pars = (Object.keys(req.body).length > 0)?req.body:req.query;
res.send(pars);
});