问题 我正在尝试构建一个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 }))
像其他帖子建议的那样,但它仍然会出现同样的错误。不知道现在该做什么!请帮忙。
谢谢!
答案 0 :(得分:10)
var app = express();
// configure body-parser
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
答案 1 :(得分: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}));
答案 2 :(得分:2)
除非你有拼写错误,否则请更改:
var express = require('body-parser');
var app = express();
app.use(bodyParser.json());
到:
var bodyParser = require('body-parser');
var app = express();
app.use(bodyParser());
请查看请求和响应对象执行的操作here
答案 3 :(得分: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());
,您不应该收到错误。
答案 4 :(得分:0)
对于当前的 express.js 版本(≥ 4.16),您不再需要 body-parser
模块。
相反,使用 express 中已经包含的 json 解析器:
app.use(express.json())
答案 5 :(得分:0)
您不必再安装 body-parser
app.use(express.urlencoded({extended: true}));
app.use(express.json()) // To parse the incoming requests with JSON payloads
如果你有 Express 4.16+,这有效