ExpressJS错误:Body-Parser已弃用

Ric*_* WU 10 deprecated node.js express body-parser

问题 我正在尝试构建一个Node.js API,在编写我的server.js文件时,我的代码如下所示:

var express = require('express');
var express = require('body-parser');

var app = express();
app.use(bodyParser.json());

app.get('/api/posts', function(req,res) {
res.json([
    {
        username: 'oscar',
        body: 'hello'
    }

])
})

app.listen(3000, function() {
console.log('Server Listening on', 3000)
})
Run Code Online (Sandbox Code Playgroud)

但是,在命令提示符中,我收到此错误:

body-parser deprecated bodyParser: use individual json.urlencoded
middlewares server.js:4:11
body-parser deprecated undefined extended: provide extended option
node_modules\body-parser\index.js:85:29
Run Code Online (Sandbox Code Playgroud)

我尝试将其更改为:

app.use(bodyParser.urlencoded({ extended: true }));
Run Code Online (Sandbox Code Playgroud)

app.use(bodyParser.urlencoded({ extended: false }))
Run Code Online (Sandbox Code Playgroud)

像其他帖子建议,但它仍然给出相同的错误.不知道现在该做什么!请帮忙.

谢谢!

小智 11

var app = express();

// configure body-parser

app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
Run Code Online (Sandbox Code Playgroud)


edu*_*inn 5

我也有过时的警告。这是我的原始代码:

var express = require('express');
var bodyParser = require('body-parser');

var app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded());
Run Code Online (Sandbox Code Playgroud)

添加{extended: true}修复了对我的警告。这是更改的代码:

var express = require('express');
var bodyParser = require('body-parser');

var app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
Run Code Online (Sandbox Code Playgroud)


小智 2

除非有拼写错误,否则请更改:

var express = require('body-parser');

var app = express();
app.use(bodyParser.json());
Run Code Online (Sandbox Code Playgroud)

到:

var bodyParser   = require('body-parser');
var app = express();
app.use(bodyParser());
Run Code Online (Sandbox Code Playgroud)

请看一下请求和响应对象在这里做什么