在我的节点应用程序中,我使用快递.一切正常,但我得到的错误cmd.我用的都是更新后的模块......
我的代码:
var express = require('express');
var bodyParser = require('body-parser');
var jade = require('jade');
var app = express();
app.set('view engine', 'jade');
app.set('views', __dirname + '/views');
app.use(express.static(__dirname + '/public'));
app.use(bodyParser.json()); // to support JSON-encoded bodies
app.use(bodyParser.urlencoded()); // to support URL-encoded bodies
app.get('/',function(req,res){
res.render('index.jade');
});
app.get('/login',function(req,res){
res.render('index.jade');
});
app.post('/login',function(req,res){
console.log(req.body);
});
app.get('/signup',function(req,res){
res.render('signup.jade');
});
var env = process.env.PORT || 3000;
app.listen(env, function(req, res){
console.log('i am working!');
});
Run Code Online (Sandbox Code Playgroud)
错误:
D:\myLogin>node app
body-parser deprecated undefined extended: provide extended option app.js:11:20 //why i am getting this?
i am working!
{ username: 'jbarif@gmail.com', password: 'pass' } // i am getting response
Run Code Online (Sandbox Code Playgroud)
可以帮我理解这个问题吗?
msc*_*dex 224
您必须明确设置extended,bodyParser.urlencoded()因为默认值将在下一个主要版本中更改body-parser.例:
app.use(bodyParser.urlencoded({ extended: true }));
Run Code Online (Sandbox Code Playgroud)
Dhi*_*iya 30
你好只是想注意Express it-self提供urlencoded和json方法(支持body方法).您也可以使用它而不是身体解析器,如下所示.
app.use(express.urlencoded({extended: true}));
app.use(express.json());
Run Code Online (Sandbox Code Playgroud)
注意: - 请确保您有快递:"^ 4.15.2".我也在部署服务器上测试它.
mfr*_*tas 14
错误说你需要为body-parser提供扩展选项,如下所示:
app.use(bodyParser.urlencoded({ extended: false }))
Run Code Online (Sandbox Code Playgroud)
Abr*_*ham 12
它现在内置于新版本的 Express 中,您可以像这样仅使用express访问请求正文:
app.use(express.urlencoded({extended: true}));
app.use(express.json()) // To parse the incoming requests with JSON payloads
Run Code Online (Sandbox Code Playgroud)
因此,您现在可以使用卸载 body-parsernpm uninstall body-parser
要获取 POST 内容,您可以使用req.body
app.post("/yourpath", (req, res)=>{
var postData = req.body;
//Or if this doesn't work
var postData = JSON.parse(req.body);
});
Run Code Online (Sandbox Code Playgroud)
从Express版本 4.16.0 开始,您需要在bodyParser.urlencoded()内传递扩展属性
// parse JSON-encoded bodies and URL-encoded bodies
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
Run Code Online (Sandbox Code Playgroud)
请参阅 npm.js 文档页面以获取示例:https://www.npmjs.com/package/body-parser#expressconnect-top-level-generic
如果您使用的是Node v16.xx.x和"express": "^4.17.x"及更高版本,则无需再次使用 bodyPerser。现在它默认与express合并。只需执行以下操作:
// parse JSON-encoded bodies and URL-encoded bodies
app.use(express.json());
app.use(express.urlencoded({ extended: false }));
Run Code Online (Sandbox Code Playgroud)
如果你面临'bodyParser' is deprecated.
做就是了
app.use(express.urlencoded({extended: true}));
app.use(express.json());
Run Code Online (Sandbox Code Playgroud)
注意:如果您使用的是4.16.0Express 版本或更高版本。
| 归档时间: |
|
| 查看次数: |
55525 次 |
| 最近记录: |