我正在阅读《使用Node和Express进行Web开发》一书,遇到了麻烦。
我被指示将以下内容放入我的应用程序文件,但它似乎body-parser
已被弃用,将无法使用。如何获得相同的功能?
这是我当前的代码:
app.use(require('body-parser')());
app.get('/newsletter', function(req, res){
// we will learn about CSRF later...for now, we just
// provide a dummy value
res.render('newsletter', { csrf: 'CSRF token goes here' });
});
app.post('/process', function(req, res){
console.log('Form (from querystring): ' + req.query.form);
console.log('CSRF token (from hidden form field): ' + req.body._csrf);
console.log('Name (from visible form field): ' + req.body.name);
console.log('Email (from visible form field): ' + req.body.email); res.redirect(303, '/thank-you');
});
Run Code Online (Sandbox Code Playgroud)
小智 11
只是想更新这个线程,因为我尝试了上面的解决方案并收到未定义。Express 4.16+ 已经实现了他们自己的 body-parser 版本,所以你不需要在你的项目中添加依赖项。您可以在 express 中本地运行它
app.use(express.json()); //Used to parse JSON bodies
app.use(express.urlencoded()); //Parse URL-encoded bodies
Run Code Online (Sandbox Code Playgroud)
来源:https : //medium.com/@mmajdanski/express-body-parser-and-why-may-not-need-it-335803cd048c
这意味着自2014年6月19日起,不推荐使用bodyParser()构造函数。
app.use(bodyParser()); //Now deprecated
Run Code Online (Sandbox Code Playgroud)
您现在需要分别调用方法
var bodyParser = require('body-parser');
app.use(bodyParser.urlencoded());
app.use(bodyParser.json());
Run Code Online (Sandbox Code Playgroud)
等等。
归档时间: |
|
查看次数: |
2364 次 |
最近记录: |