Tag: body parser

ExpressJS错误:Body-Parser已弃用

问题我正在尝试构build一个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: […]

Express.js POST req.body为空

所以我在我使用node.js运行的server.js文件中有以下代码。 我使用express来处理HTTP请求。 app.post('/api/destinations', function (req, res) { var new_destination = req.body; console.log(req.body); console.log(req.headers); db.Destination.create(new_destination, function(err, destination){ if (err){ res.send("Error: "+err); } res.json(destination); }); }); 我在terminal上运行以下内容: curl -XPOST -H "Content-Type: application/json" -d '{"location": "New York","haveBeen": true,"rating": 4}' http://localhost:3000/api/destinations 运行后,server.js输出如下内容。 {} { host: 'localhost:3000', 'user-agent': 'curl/7.43.0', accept: '*/*', 'content-type': 'application/json', 'content-length': '53' } 所以req.body是{} 。 我读了其他堆栈溢出post有关类似的问题,其中内容types是不正确的,因为身体分析器。 但这不是问题,因为内容types是application […]

使用http-proxy和body-parser与express时,节点挂起POST请求

我也已经把这个发布到http-proxy的相关问题上 。 我正在使用http-proxy与express所以我可以截取我的客户端和api之间的请求,以添加一些cookie进行身份validation。 为了validation客户端必须发送带有x-www-form-urlencoded作为内容types的POST请求。 所以我使用body-parser中间件来parsing请求体,这样我就可以在请求中插入数据了。 http-proxy在使用body-parser遇到了一个问题,因为它将bodyparsing为一个stream,并且从不closures它,所以proxy永远不会完成请求。 在http-proxy的例子中有一个解决scheme,在我尝试使用的parsing之后,“重新stream”请求。 我也试图在同样的问题中使用connect-restreamer解决scheme,但没有运气。 我的代码看起来像这样 var express = require('express'), bodyParser = require('body-parser'), httpProxy = require('http-proxy'); var proxy = httpProxy.createProxyServer({changeOrigin: true}); var restreamer = function (){ return function (req, res, next) { //restreame req.removeAllListeners('data') req.removeAllListeners('end') next() process.nextTick(function () { if(req.body) { req.emit('data', req.body) //error gets thrown here } req.emit('end') }) } } […]

Node.js(使用express&bodyParser):无法从post请求中获取表单数据

我似乎无法恢复发送到我的Node.js服务器的发布请求的表单数据。 我已经把服务器代码和post请求(使用postman in chrome发送)放在下面: 发布请求 POST /api/login HTTP/1.1 Host: localhost:8080 Cache-Control: no-cache —-WebKitFormBoundaryE19zNvXGzXaLvS5C Content-Disposition: form-data; name="userName" jem —-WebKitFormBoundaryE19zNvXGzXaLvS5C NodeJS服务器代码 var express = require('express'); // call express var app = express(); // define our app using express var bodyParser = require('body-parser'); app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); app.use(bodyParser()); app.all('/*', function(req, res, next) { res.header('Access-Control-Allow-Origin', '*'); res.header('Access-Control-Allow-Headers', 'Content-Type,accept,access_token,X-Requested-With'); […]

为什么调用node.js body-parser失败,尽pipe我已经安装了它?

我开始学习node.js并试图找出如何获取POST请求的内容。 我试图按照这篇文章中的说明。 到目前为止,我已经成功安装了node.js(在Windows 7上)并且expression了,并且能够获得我的第一个脚本的工作。 然而,当我尝试使用身体分析器时,我的问题来了。 我已经安装了它,它似乎在那里 这里是node.js脚本的代码 var express = require('express'); var bodyParser = require('body-parser'); var app = express(); app.use( bodyParser.json() ); // to support JSON-encoded bodies app.use(express.json()); // to support JSON-encoded bodies app.get('/', function(req, res) { res.setHeader('Content-Type', 'text/plain'); res.end('Vous êtes à l\'accueil'); }); app.get('/user/:usernum', function(req, res) { res.setHeader('Content-Type', 'text/plain'); res.end('You are on page USER […]

body-parser – 扩展选项(qs vs querystring)

在body-parser的当前版本中,现在需要使用bodyParser.urlencoded()时的extended选项。 在自述文件中,它解释了: 扩展选项允许select在查询string库(如果为false)或qs库(如果为true)时parsingURL编码的数据。 […] 默认为true,但使用默认值已被弃用。 请研究qs和querystring之间的差异,并select适当的设置。 我找不到任何有用或具体的信息。 我只发现了一个不推荐使用的节点查询string 。 如果这个选项总是正确的?

我怎样才能用LoopBack使用body-parser?

我看到LoopBack内置了Express 3.x中间件。 事实上,body-parser是在loopback/node_modules 。 但我不知道如何将其用作中间件。 我从来没有使用Express 3.x,所以也许就是这样。 require显然不起作用,除非我在我的项目中安装body-parser作为依赖项。 我应该怎么做在server.js使用身体分析器,以便Web窗体被parsing成req.params ? 就是这样,对吗?

Express 4.0中的“扩展”是什么意思?

我在我的应用程序中使用express和body-parser。 app.use(bodyParser.urlencoded({ extended: false })); 但是,expression式4.0中的“扩展”是什么意思? 我find了这个 extended – parse extended syntax with the qs module. 但是,我仍然不能低估这意味着什么。