当前位置: 首页 > 知识库问答 >
问题:

如何在express路由器中使用主体解析器?

农鸿德
2023-03-14

我有一个后api,有对象,但我不能打印在控制台上它的下载未定义我以为我错过了身体解析器,但添加身体解析器后,我看到错误身体解析器弃用身体解析器:使用个人json/urlencoded middlewares将不胜感激。

路线。js

var express = require('express');
var bodyParser = require('body-parser');
var Diagram = require('./api/diagram/diagram.controller');
var router = express.Router();
router.post('/saveUpdateDiagram',bodyParser,function(req,res){
    console.log(req.body);
});

应用程序。js

var express = require('express');
var path = require('path');
var app = express();
var bodyParser = require('body-parser');
var router = express.Router();
var route = require('./server/routes').router;
var mongoose = require('mongoose');
mongoose.connection.on('connected', function() {
    console.log('MongoDB connected ');
});


app.use(express.static(path.join(__dirname, 'public')));
app.use('/', route);
app.use(bodyParser.urlencoded({
    extended: false
}))
app.use(bodyParser.json())


app.listen(8760, function() {
    console.log('I am listening 8760...');
});

共有3个答案

夏侯鹏
2023-03-14

在app.js中使用身体解析器是可以的。它是中间件,它加载了app.use但是问题是你使用app.use ('/', 路由)的位置;它应该放在app.use(body Parser.urlencoded({扩展:真}));

顾烨磊
2023-03-14

这意味着在2014-06-19,不建议使用body Parser()构造函数。

 app.use(bodyParser()); //Now deprecated You now need to call the methods separately
 app.use(bodyParser.urlencoded());

 app.use(bodyParser.json()); //And so on.

如果你还在使用urlencoded收到警告,你需要使用

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

现在需要显式传递扩展的配置对象键,因为它现在没有缺省值,如这里所说。

施知
2023-03-14

在app.js中使用身体解析器是可以的。它是中间件,它加载了app.use,以便将其应用于每个传入的请求。

您可以在路径中删除它。js,所以看起来是这样的:`

js lang-js prettyprint-override">var express = require('express');
var Diagram = require('./api/diagram/diagram.controller');
var router = express.Router();
router.post('/saveUpdateDiagram', function(req,res){
    console.log(req.body);
});
 类似资料:
  • Im使用路由器类管理我的所有路由: 我想检查x-www-form-urlencoded主体参数。以查看键是否不是它应该是的,或者值是否为空。 我编写了一个中间件函数来检查: 但它似乎不喜欢我将参数传递给中的中间件函数 我的问题是,我如何创建一个中间件函数,它接受比req、res和next更多的值?以及如何在路由器实例中正确使用此功能。 欢迎任何反馈

  • 问题内容: 因此,我开始使用Node.js。我在Nodejs.org上与Ryan Dahl一起观看了视频,听说他向网站推荐了Express-js。 我下载了最新版本的Express,并开始编写代码。我在/上有一个完整的静态视图,但是一旦尝试发送参数,就会收到如下错误: 我尝试按照expressjs.com上的指南进行操作,但是在最新版本中,使用路由的方式已更改,这使该指南无法使用。 指南: 由Ex

  • 所以,我在这个快速的应用程序中工作,所有路线都有有限的身体大小,除非你是管理员,因为管理员需要几个路线的无限身体大小。我有限制的身体大小中间件,我这样使用它: 但最终我的身体没有被解析,一切都没有定义。 我怎么能解决这个问题,只有一个中间件,而不是通过传递身体解析器中间件到每一个路由或路由器分开。

  • 问题内容: 我有一个与此类似的设置: 我想将WebSocketServer放在特定的路径下,例如。问题是如何设置路径?可能吗? 问题答案: 您将要使用以下选项: 在此处查看完整文档