Articles of body parser

Sails.js:删除bodyparser中间件的一个特定的路线

有什么方法可以删除特定路由的中间件 目前所有的中间件都在http.js文件中列出 [ 'startRequestTimer', 'cookieParser', 'session', 'bodyParser', 'passportInit', 'passportSession', 'myRequestLogger', 'handleBodyParserError', 'compress', 'methodOverride', 'poweredBy', 'router', 'www', 'favicon', '404', '500' ] 我想删除bodyParser中间件的一个特定的路线 sails.js可能吗?

在body-parser之前编写expression中间件来获得原始的请求体

我写了一个Express中间件来从请求中检索原始主体,并在body-parser中间件之前将其设置。 我的自定义中间件调用了req.setEncoding('utf8') ,但是这会导致下面的body-parser错误: 错误:不应该设置stream编码 at readStream (/node_modules/body-parser/node_modules/raw-body/index.js:211:17) at getRawBody (/node_modules/body-parser/node_modules/raw-body/index.js:106:12) at read (/node_modules/body-parser/lib/read.js:76:3) at jsonParser (/node_modules/body-parser/lib/types/json.js:127:5) 这是我的代码: var express = require('express'); var bodyParser = require('body-parser') function myMiddleware() { return function(req, res, next) { req.rawBody = ''; req.setEncoding('utf8'); req.on('data', function(chunk) { req.rawBody += chunk; }); req.on('end', function() { next(); }); } } var app = express(); […]

(node:5132)DeprecationWarning:`DEBUG_FD`已弃用。 与bodyParser

我正在使用express和bodyParser在快速web服务器上获取POST数据。 复制错误的最小示例是: var bodyParser = require('body-parser'); var express = require("express"); var app = express(); app.use(bodyParser.urlencoded({extended: true})); 会发生什么事情会打印出一个错误: "C:\Program Files (x86)\JetBrains\WebStorm 2016.1.1\bin\runnerw.exe" "C:\Program Files\nodejs\node.exe" test.js (node:5132) DeprecationWarning: `DEBUG_FD` is deprecated. Override `debug.log` if you want to use a different log function (https://git.io/vMUyr) Process finished with exit code 0 只有当我包含bodyParser时才会发生。 即使错误仍然有效,程序仍然运行良好。 我只是想摆脱这个烦人的消息。 我已经search了从什么时候被弃用的: https : //github.com/visionmedia/debug/issues/386 问题是我不知道什么是DEBUG_FD,显然这是一个环境variables,我试图把它closures在terminal: […]

NodeJs,Express,BodyParse和JSON

我试图使用Express 4.0实现一个简单的服务器,并与BodyParserparsing消息。 为了testing我的服务器,我使用邮差。 使用x-www-form-urlencoded作为消息模式,它可以正常工作,但是使用JSON更改消息我无法使用BodyParse数据。 这是我的代码: app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); var router = express.Router() router.get('/', function (req, res){ res.json({message: "nd…"}) }) var sendRoute = router.route('/msg') sendRoute.post(function(req, res){ // HERE IS THE PROBLEM****************************** // It works with urlencoded request but not with JSON var dataparam1 = req.body.param1 var dataparam2 = req.body.param2 **************************************************** . . . }) […]

如何通过邮差发送JSON到NodeJS Express服务器?

我试图从Chrome应用程序“邮差”通过POST发送JSON对象。 如果我将头设置为'Content-Type: text/plain' ,那么另一边的输出是一个空对象: {} 如果我将头设置为Content-Type: application/json ,我收到以下响应… '错误:无效的JSON'。 关键是设定ingredients ,其值设定为: { ["name" : "num1", "quantity" : "5"], ["name" : "num2", "quantity" : "2"], [ "name" : "num3", "quantity" : "8"]} 我在这里看到它: router.post('/add', jsonParser, function( req, res ) { if (!req.body) return res.sendStatus(400); console.log( req.body ); });

在快速应用程序中获取错误“bodyParser.json不是一个函数”

我是nodejs的新手。 当快递试验时,我卡住了。 我只是想testing我的应用程序。 运行server.js文件时出现错误。 我错过了什么? 这是什么控制台看起来像… C:\Users\rupindersingh\Dropbox\Works\worthlessmongo>node server.js C:\Users\rupindersingh\Dropbox\Works\worthlessmongo\server.js:12 app.use(bodyParser.json()); ^ TypeError: bodyParser.json is not a function at Object.<anonymous> (C:\Users\rupindersingh\Dropbox\Works\worthlessmongo\server.js:12:20) at Module._compile (module.js:409:26) at Object.Module._extensions..js (module.js:416:10) at Module.load (module.js:343:32) at Function.Module._load (module.js:300:12) at Function.Module.runMain (module.js:441:10) at startup (node.js:139:18) at node.js:974:3 这是pakage.json文件 { "name": "worthlessmongo", "version": "1.0.0", "description": "Just Tryin", "main": "server.js", "scripts": { "test": "echo […]

req.body返回空对象(我已经包含bodyparser)

我是新来的后端JavaScript和我有一个表单提交应该显示提交的对象,但它显示一个空的对象,而不是。 我已经包括身体分析器,所以我不知道问题在哪里。 这是我的app.js文件: const express = require("express"); const app = express(); const mustacheExpress = require("mustache-express"); const bodyParser = require("body-parser"); const pgp = require("pg-promise")(); app.engine("html", mustacheExpress()); app.set("view engine", "html"); app.set("views", __dirname + "/views"); app.use("/", express.static(__dirname + "/public")); app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()); app.get('/new_creature',function(req,res){ res.render('new_creature/index'); }); app.post('/new_creature', function(req,res){ res.end(JSON.stringify(req.body)); console.log(req.body); // res.render('new_creature/index'); }); 这里是我的意见/生物/ new_creature / index.html文件: […]

将数组名添加到jsonstring中的匿名数组

我怎样才能改变这一点: [{"name": "Donald"}, {"name": "George"}] 对此: {MyArray: [{"name": "Donald"}, {"name": "George"}]} 这是我使用node.js,express和body-parser制作的数据库服务器。 该string是使用集合('name')。find()。toArray函数生成的。

Node.js body-parser将不会使用json中的方括号来分析input名称

Node.js中的Express bodyparsing器有问题 我有这样的input: <input id="personEmail1" type="email" name="person[0][email]" placeholder="Email1" class="form-control"> <input id="personEmail2" type="email" name="person[1][email]" placeholder="Email2" class="form-control"> 当我提交我的表单后,我在我的console.log中得到了这个: { 'person[0][email]': 'info@sss.sss', 'person[1][email]': 'info@ggg.ggg' } 但我希望它被parsing为json格式: { person: [{email: 'info@sss.sss'}, {email: 'info@ggg.ggg'}] } 我做错了什么?

body-parser节点模块返回“弃用”消息

我在学习Node.js的过程中 – 通过一些例子,我使用“快速”框架,并且我已经安装了body-parser(使用npm install body-parser),并且它很好。 。但是当我启动我的应用程序 – 节点显示这个: body-parser deprecated bodyParser: use individual json/urlencoded middlewares: app.js:30:11 body-parser deprecated undefined extended: provide extended option: node_modules\body_parser\index.js:85:29 但它继续显示其在端口xxxx上的“正常”侦听。 当然,只是学习 – 我没有大量的软件包经验,但我把第一行写成“express 4”,不喜欢我的版本的body-parser–尽pipe我在express网站上获得了它的链接。 http://expressjs.com/resources/middleware.html https://github.com/expressjs/body-parser?_ga=1.200820398.1885847446.1420349783 我的应用程序js现在看起来就像这样 – 而且它的工作,所以我不知道如何“采取”这个消息。 (带“app.use(bodyParser());”的行是上面第30行的引用) var express = require( 'express' ); var path = require( 'path' ); var bodyParser = require( 'body-parser' ); var app […]