Tag: body parser

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 […]

Node.js设置错误的内容长度。 我如何设置这一个

我需要一些帮助。 即使我把内容长度设置为响应对象,它似乎不起作用。 我有错吗? res.set({ 'Content-Type': res._data.ContentType, 'Content-Length': res._data.ContentLength, ETag: res._data.ETag }); res.send(res._data.Body); 我使用express和body-parser来发送数据,并且我设置了Content-Length。 res.header('Content-Type', res._data.ContentType); res.header('content-length', res._data.ContentLength); res.header('Cache-Control', 'no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0'); 我也试过这个。 { AcceptRanges: 'bytes', LastModified: 'Thu, 15 Jan 2015 22:23:43 GMT', ContentLength: '648789', ETag: '"7da971554e6ff4f6dfcdb7b2ba5e0be3"', ContentType: 'image/jpeg', Metadata: {}, Body: <Buffer ff d8 ff e0 00 10 4a 46 49 […]

XHR请求与JSON与urlencoded:性能和安全性

我有xhr请求与数据像名字=约翰用户名= JohnTheGreat。 在这种情况下,我可以通过content-type发送一个xhr:application / x-www-form-urlencoded: 'name=John&username=JohnTheGreat' 或者我可以使用content-type:application / json: '{"name"="John","username"="JohnTheGreat"}' 在服务器端(我用express来使用nodejs服务器),对于这两种情况,我都使用body-parser来parsing数据。 1)哪两个parsing速度更快? 我想这将是JSON,因为它显然只涉及string连接和eval,而urlencodedstring似乎意味着大量的string操作。 2)这两种情况哪一种更安全? 一般来说,现代浏览器中的安全性问题是什么? (例如,用户可以写一些脚本,当被分析的脚本将会被执行吗?)

NodeJs请求数据streamvs expressJs bodyParser

我正在使用0.12.2的一个非常旧的节点版本在NodeJS的遗留项目上工作 虽然它正在使用expressJS框架版本4.12.4与身体分析器版本1.8.1 一些旧的控制器利用从请求对象读取数据stream的本地nodeJS方法来访问请求的正文部分: req.on("data", function (data) { body += data; }); req.on("end", function () { console.log(body) // do something here with body } 较新的控制器使用bodyParser使用以下方法访问数据: req.body('something') 正文parsing器被实例化为: var bodyParser = require('body-parser'); var app = express(); app.use(bodyParser.json({limit: '50mb', extended: true})); 这是一个非常大的项目(1300+ Api)作为生产级软件运行。 我的问题是,以上是一个安全的做法? 会使用bodyParser影响本地请求对象? 我遇到的麻烦有时是遗留的控制器超时而没有返回任何响应,没有生成日志,因此无法debugging。

express express-parser中间件将数据放入属性名称中

我是nodeJS Express框架的新手。 我正在使用以下消息发送POST请求: router.post('/', function(req, res) { var data = Object.getOwnPropertyNames(req.body)[0]; }); 我通过以下方式从客户端发送了这些数据: $.ajax({ url: "write_to_region", type: "POST", data: JSON.stringify(grid) }); 其中“网格”是一个二维值的数组。 我的快车尸体parsing器configuration如下: app.use(bodyParser.urlencoded({limit: '50mb', extended: false })); 什么是更好或更习惯的做法呢? 请注意,该数组有点大(10kb),只包含整数。 理想情况下,我会尽量减less请求中发送的数据量。 谢谢!!

req.body使用post方法未定义

login.html(我已经转换为玉)是我的login页面在localhost:3000打开。 我发送表单详细信息到index.js(服务器)。 问题:在console.log(用户名)我得到的输出为undefined。 请帮忙。 我是否正确使用了body-parser? var express= require('express'); var app = express(); var http = require('http').Server(app); var io = require('socket.io')(http); var bodyParser = require('body-parser'); app.use(express.static('./Public')); app.set('views', __dirname + '/tpl'); app.set('view engine', "jade"); app.engine('jade', require('jade').__express); app.get("/", function(req, res){ res.render("login"); }); app.use(bodyParser.urlencoded({ extended : false })); app.use(bodyParser.json()); app.post('/', function(req,res) { var username = req.body.name; console.log(username); }); http.listen(3000, […]

Nodejs应用程序抛出不能POST /用户身体分析器中间件

这是我的app.js文件。 var express = require('express'), bodyParser = require('body-parser'), oauthServer = require('oauth2-server'), oauth_model = require('./app_modules/oauth_model') const app = express() app.use(bodyParser.urlencoded({ extended: true })); var jsonParser = bodyParser.json(); app.oauth = oauthServer({ model: oauth_model, // See below for specification grants: ['password', 'refresh_token'], debug: process.env.OAUTH_DEBUG, accessTokenLifetime: 172800, refreshTokenLifetime: 172800, authCodeLifetime: 120, }); // Oauth endpoint. app.all('/oauth/token', app.oauth.grant()); // User […]

Node.js Body-Parser无法检索表单input

我正在试图从一个窗体的inputconsole.log。 但是,正文parsing器显示“未定义”的input,我试图在我的terminal上打印。 我不知道我做了什么不对。 请告知我做错了什么。 谢谢。 HTML表单 <html> <header> <link rel="stylesheet" type="text/css" href="css/form.css"> </header> <body> <form id="form" class="topBefore" action="/form" method="post" enctype="multipart/form-data"> <input id="name" name="name" type="text" placeholder="NAME"> <input id="email" name="email" type="text" placeholder="E-MAIL"> <textarea id="message" name ="message" type="text" placeholder="MESSAGE"></textarea> <input type="file" name="upload" multiple> <input id="submit" type="submit" value="GO!"> </form> </body> </html> App.js // port and modules var port = […]

检查快速请求数据是否是数组

我正在使用Express 3.x API服务器(不要问我为什么不升级到4.x;我不能控制这个),而且我试图实现对批量请求的支持一个特定的终点。 端点目前支持常规请求(需要一个JSON对象),但是我希望它也能够获取JSON对象的数组,例如: POST /api/posts Body: [ { "title": "Hello World", "text": "blah blah" }, { "title": "Hello World 2", "text": "blah blah blah" } ] 当我尝试使用req.body访问请求的单个请求的req.body ,我可以检索数据就好(这只是一个常规的JSON对象)。 但是,当我发送数组时,我发现数据被parsing为对象(?)而不是数组。 req.body = { "title": "Hello World", "text": "blah blah" }; typeof req.body; // object req.body.toString(); // [object Object] req.body = [ { "title": "Hello World", […]

file upload挂在生产代码上,但在本地工作 – multer,node.js

我正在写快速3,现在我们升级到expression4,我有一个file upload的问题。 一切工作在我的本地计算机mac OSX,但不能在Ubuntu的生产服务器上工作。 我正在上传zip文件,里面有png和psd。 我正在上传文件的多部分forms:与multer中间件。 当地一切都好,但在生产环境中,连接正在打破。 文件开始上传到主上传根,但作为一个块的一部分,例如我上传50 MB的zip文件,但上传大约30 kb和连接中断,因为上传数据块的onFileDataupload事件是中断。 app.js中的设置 我的身体分析器设置: app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false }) ); 我的Muller设置: app.use(multer({ dest: './upload', limits: { fieldNameSize: 500, files: 2, fields: 20, fileSize: 200 * 1024 * 1024 }, rename: function (fieldname, filename) { return fieldname + filename + Date.now(); }, onFileUploadStart: function (file) { console.log('Upload starting […]