Tag: 身体分析器

通过使用body parser,node js的POST方法将一个variables从HTML表单传递到mongodb查询中

我从html表单发送数据,以在mongodb查找查询中使用它,但是当在查询中使用它时,它将searchvariables名称而不是其中的值存储。 app.post('/love',function(req, res){ var article = new Article(); article.headers.Subject = req.body.title; var x = "article.headers.Subject"; console.log(x); var query = Article.find({'header.Subject': {$regex: 'x'}}).limit(2); query.exec(function(err, articles){ if(err){ console.log(err); }else{ res.render('index.html',{ title: 'author', articles:articles }); } }); return; }) 尝试所有的查询选项,如: .find('headers.Subject' : /x/i) .find('headers.Subject': 'x') 我已经打印x和它的价值,但是当它发现查询它只是寻找字母“x”。 模型结构: var ArticleSchema = mongoose.Schema({ body: 'String', subFolder: 'String', headers:{ Subject: 'String', […]

无法使用node.js v0.12.7,express 4,body-parser,bootstrap 3检索POST数据

在以前的应用程序中,我已经做了几十次,但由于某种原因,无法再工作了。 不知道这是否是版本问题。 我已经看过了我可以在网上find的每一个例子,而且没有一个可以工作。 不知道我在做什么错。 相关代码: index.html (从引导站点复制 – 我只添加angular色,操作和方法attrs到表单标记) <html> <head> <!– Latest compiled and minified CSS –> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css"> <!– Optional theme –> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap-theme.min.css"> <!– jQuery –> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> <!– Latest compiled and minified JavaScript –> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script> </head> <body> <form role="form" action="/form" method="post"> <div class="form-group"> <label for="exampleInputEmail1">Email address</label> <input type="email" […]

Node.js Express3到Express4迁移 – parsing器的使用

我的基于节点的服务器使用Express。 服务器处理仅使用json的路由和使用多部分表单的文件上载路由。 在使用Express3时,内置的parsing器parsing了两种路由。 我正在迁移到Express4的过程中。 我不得不为Express4切换的body-parser只parsingjsons。 我正在使用multerparsing器来parsingfile upload。 对于每个路由,我指定使用哪个parsing器,如下所示: var express = require('express'); var bodyParser = require('body-parser'); var multer = require('multer'); var jsonParser = bodyParser.json(); var upload = multer({dest : 'upload/' }); var uploadParser = upload.any(); var app = express(); // json route handling app.post('json_only_route', jsonParser, function(req, res) {…}); // upload route handling app.post('upload_route', uploadParser, function(req, […]

Mongoose – 函数内.find方法不传递结果

如何将函数的结果成功传递给.find方法? 如果用户提交了一个非空string,我希望通过body-parser传递的参数被用作键“name”的值。 如果用户提交了一个空string,那么空的对象应该被传递给.find方法。 函数console.log工作。 如果我提交一个空string,然后“空querydb”被打印到控制台。 同样,如果我提交任何其他string,然后正确地打印到控制台。 我如何将req.body.querydb作为值传递给'name'键? HTML <form method="POST" action="form_query"> <input type="textarea" name="querydb"> <br><br> <button> Query </button> </form> .JS router.post('/form_query', function(req,res) { someModel.find(function(err,results){ if(!req.body.querydb){ console.log("empty querydb") return {} } else { console.log(req.body.querydb) return {name:req.body.querydb} } }).exec(function(err, result) { if (err) { send(err) } else { console.log('omg') } 非常感谢 !

无法parsing快速编码的url数据

我有这个超级简单的服务器: var app = require('express')(); var bodyParser = require('body-parser'); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: true })); app.post('/update', (req, resp) => { debugger; resp.send(); }); var server = app.listen(3000, function () { var host = server.address().address; var port = server.address().port; console.log('Example app listening at http://%s:%s', host, port); }); 使用邮递员 ,我发送数据到服务器是这样的: 收到请求时,REPL显示一个空的正文: > req.body {} 我希望身体看起来像这样: { "hello": "world" […]

Body-Parser太大Nodejs

我目前正在开发一个应该接收一个图像的base64的API,但是当我尝试通过POST传递这个有效负载并发送时,服务器(通过使用expression式和身体分析器作为中间件,由Node构成)给出我有以下错误: request entity too large 在网上search了很多之后,我发现有人说我应该使用: bodyParser = require('body-parser'); app.use(bodyParser.urlencoded({limit: '50mb', extended: true})); app.use(bodyParser.json({limit: '50mb'})); intead使用: app.use(bodyParser.urlencoded({ extended: false })); app.use(bodyParser.json()); 但是,通过这样做,我收到此错误: Unexpected token i in JSON at position 5 有没有人知道我在这里失踪? 提前致谢! 这是一个打印与我试图发送的对象为例:

如何更改Firebase中的body parser限制?

我试图代理一个file upload到firebase云function不暴露我们的APIurl。 看起来像Firebase正在使用Body-parser来parsing请求中的主体,但默认情况下它被限制为100kb。 我试过这个: var bodyParser = require('body-parser'); app.use(bodyParser.json({limit: '50mb'})); app.use(bodyParser.urlencoded({limit: '50mb', extended: true})); var bodyParser = require('body-parser'); app.use(bodyParser.json({limit: '50mb'})); app.use(bodyParser.urlencoded({limit: '50mb', extended: true})); 但它似乎没有使用bodyParser。 它使用embedded到Firebase框架中的私人内容。 有没有办法改变它的限制? 这是我得到的: 在getRawBody(/ usr / local / lib / lib)下,blockquote错误:{error:请求实体在readStream上太大(/usr/local/lib/node_modules/firebase-tools/node_modules/raw-body/index.js:196:17) (/usr/local/lib/node_modules/firebase-tools/node_modules/body-parser/lib/read.js:76:node_modules / firebase-tools / node_modules / raw-body / index.js:106:12) 3)在urlecodedParser(/usr/local/lib/node_modules/firebase-tools/node_modules/body-parser/lib/types/urlencoded.js:115:5)在Layer.handle [作为handle_request](/ usr / local / lib / node_modules / […]

使用Express进行处理的最佳实践

我正在写一个实现用户pipe理系统的网站,我不知道有什么关于表单处理的最佳实践,我不得不考虑。 尤其是性能,安全性,SEO和用户体验对我来说非常重要。 当我正在处理这个问题时,我偶然发现了一些问题,并没有find一个完整的节点/快速代码片断,我可以在这里找出所有我下面的问题。 用例:有人将更新他的个人资料的生日。 现在我正在对同一个URL进行一个POST请求来处理该页面上的表单,POST请求将以302redirect到相同的URL进行响应。 关于表单处理的一般问题: 我应该做一个POST请求+ 302redirect的表单处理,而不是像AJAX请求其他东西? 我应该如何处理无效的FORM请求(例如,无效login或注册期间已经使用的电子邮件地址)? expression关于表单处理的具体问题: 我之前插入任何东西,我想我需要清理和validation服务器端的所有表单域。 你会怎么做? 我阅读了有关CSRF的一些内容,但是我从来没有实施CSRF保护。 我也很高兴在代码片段中看到这一点 使用Express处理表单时是否需要处理任何其他可能的漏洞? 示例HTML /帕格: form#profile(method='POST', action='/settings/profile') input#profile-real-name.validate(type='text', name='profileRealName', value=profile.name) label(for='profile-real-name') Name textarea#profile-bio.materialize-textarea(placeholder='Tell a little about yourself', name='profileBio') | #{profile.bio} label(for='profile-bio') About input#profile-url.validate(type='url', name='profileUrl', value=profile.bio) label(for='profile-url') URL input#profile-location.validate(type='text', name='profileLocation', value=profile.location) label(for='profile-location') Location .form-action-buttons.right-align a.btn.grey(href='' onclick='resetForm()') Reset button.btn.waves-effect.waves-light(type='submit') 示例路由处理程序: router.get('/settings/profile', isLoggedIn, profile) router.post('/settings/profile', isLoggedIn, […]

使用NodeJS / ExpressJS和Postman无法获取POST数据

这是我的服务器的代码: var express = require('express'); var bodyParser = require("body-parser"); var app = express(); app.use(bodyParser.json()); app.post("/", function(req, res) { res.send(req.body); }); app.listen(3000, function () { console.log('Example app listening on port 3000!'); }); 从邮递员,我启动一个POST请求到http:// localhost:3000 /和身体/forms数据我有一个关键“富”和价值“酒吧”。 但是,我不断收到一个空的对象在响应。 req.body属性总是空的。 我错过了什么?

错误:与multer和body-parser无效的json

我目前在node.js应用程序中使用multer来处理multipart/form-data和body-parser 。 我试图使用POSTMAN POST表单数据,但它得到这个错误。 Error: invalid json at parse (/Users/k/Documents/application/node_modules/body-parser/lib/types/json.js:79:15) at /Users/k/Documents/application/node_modules/body-parser/lib/read.js:102:18 at IncomingMessage.onEnd (/Users/k/Documents/application/node_modules/body-parser/node_modules/raw-body/index.js:136:7) at IncomingMessage.g (events.js:199:16) at IncomingMessage.emit (events.js:104:17) at _stream_readable.js:908:16 at process._tickDomainCallback (node.js:381:11) 这就是我在server.js中添加multer和body-parser的方式 var express = require('express'); var mongoose = require('mongoose'); var bodyParser = require('body-parser'); var multer = require('multer'); var app = express(); app.use(bodyParser.urlencoded({extended: true})); app.use(bodyParser.json()); app.use(multer({ dest: './uploads/'})); 我想这可能是因为耳垂不工作。 当我删除body-parser并再次尝试时,它显示console.log(req.body)和console.log(req.files)空json。 […]