10

问题 我正在尝试构建 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)
})

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

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

我尝试将其更改为:

app.use(bodyParser.urlencoded({ extended: true }));

app.use(bodyParser.urlencoded({ extended: false }))

就像其他帖子建议的那样,但它仍然给出同样的错误。不知道现在该怎么办!请帮忙。

谢谢!

4

6 回答 6

13
var app = express();

// configure body-parser

app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
于 2015-05-28T07:12:23.307 回答
5

我有类似的弃用警告。这是我的原始代码:

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

var app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded());

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

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

var app = express();

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
于 2016-01-01T09:27:20.167 回答
2

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

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

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

至:

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

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

于 2015-05-28T04:49:15.047 回答
2

你实际上并不需要这条线app.use(bodyParser.urlencoded({extended: true}));

我可以使用以下代码:

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

var app = express();

app.use(bodyParser.json());

正如你所拥有的那样,app.user(bodyParser.json());你不应该得到错误。

于 2016-06-08T21:26:59.620 回答
0

不要使用正文解析器

在新版本的 express 中,body 解析现在是内置的。所以,你可以简单地使用

app.use(express.json()) //For JSON requests
app.use(express.urlencoded({extended: true}));

从直接表达

您可以使用卸载 body-parsernpm uninstall body-parser



然后你可以简单地从req.body

app.post("/yourpath", (req, res)=>{

    var postData = req.body;

    //Or for string JSON body, you can use this

    var postData = JSON.parse(req.body);
});
于 2021-06-25T07:49:52.683 回答
0

您不再需要body-parser使用当前 express.js 版本(≥ 4.16)的模块。

相反,使用 express 中已经包含的 json 解析器:

app.use(express.json())

来源:https ://expressjs.com/en/changelog/4x.html#4.16.0

于 2021-05-27T16:02:29.157 回答