Tag: body parser

在node.js中使用body-parser时,如何在不区分大小写的模式下获取键值?

在node.js中使用body-parser时,我希望发送键不区分大小写。 假设我们发送一个json,比如{“Name”:“Dariush”},我想通过两种方法获得“Name”的值: request.body.name&request.body.Name 但是,默认情况下,只是request.body.Name工程! 我想'request.body.name'也可以。

Express.js找不到模块'mime-types'

我试图运行一个简单的快速服务器与身体分析器: var express = require('express'); var bodyParser = require('body-parser'); var app = express(); app.use(bodyParser.json()); 我意识到这不再与快递捆绑在一起,并且双重检查了这两个软件包都安装有: npm install -s express body-parser 我得到的错误是: module.js:472 throw err; ^ Error: Cannot find module 'mime-types' at Function.Module._resolveFilename (module.js:470:15) at Function.Module._load (module.js:418:25) at Module.require (module.js:498:17) at require (internal/module.js:20:19) at Object.<anonymous> (/home/osboxes/.nvm/versions/node/v7.2.0/lib/node_modules/body-parser/node_modules/type-is/index.js:16:12) at Module._compile (module.js:571:32) at Object.Module._extensions..js (module.js:580:10) at Module.load (module.js:488:32) at […]

使用内容types:multipart / form-data不能使用express post方法

search后,所有我累了任何人都可以告诉我为什么post方法不工作,当我添加Content-Type:multipart / form-data在postman.Note中没有添加这个吸所有工作正常。 这里是我的app.js var app = express(); var apiRoutes = require('./routes/apiRoutes'); // view engine setup app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); app.use(logger('dev')); app.use(bodyParser.json({limit: '50mb'})); app.use(bodyParser.urlencoded([{extended: false}, {limit: '50mb'}])); app.use(cookieParser()); app.use(express.static(path.join(__dirname, 'public'))); app.use(express.static(path.join(__dirname, 'uploads'))); app.use(multipart());; app.use(apiRoutes) 这里是我的apiRoutes.js var express = require('express'); var router = express.Router(); var fn = require('../webservices'); var multipart = require('connect-multiparty')(); router.post('/api/login', fn.test); […]

快速身体parsing器与自定义标题

我正在设置一个REST API,它使用一个自定义的Content-Type来获取请求,但是我在使用NPM包body-parserparsing正文时遇到了麻烦。 我正在使用Mocha和Chai-HTTP进行一些testing,然后像这样对我的请求进行testing: chai.request(server) .post('/demo') .set('Content-Type', 'application/vnd+companyName.v01+json') .send({name: 'test'}) .end(function(err, res) {/* tests are here */}); 在我的快递app.js中,我打电话给这个中间件: app.use(bodyParser.json({type: 'application/*+json'})); 当我使types变得更一般化时,比如使它成为'application / *',我可以通过'application / json'Content-Type来传递请求,但不是我自定义的。 当我这样做时,我的要求是一个空的对象。 如果bodyParser只是完全不工作,req.body将是未定义的,而不是一个空的对象。 通过查看文档,我觉得我的身体派对电话的选项是正确的,但显然不是 – 任何见解?

使用Passport.js的login系统始终执行“failureRedirect”(nodejs)

我正在做一个教程,我卡在login区域。 当我使用Passport.jslogin时,它始终在validation中执行“failureRedirect”。 尝试debuggingreplacerouter.post('login')路由后,我收到以下消息: 错误:null用户:false信息:{“message”:“Missing credentials”} 在阅读一些论坛后,我认为这个问题可能与body-parser有关。 我一直在试图解决这个问题,但我还没有成功。 我会感激最有经验的node.js程序员的帮助。 该项目的结构是:app.js routes:users.js models:user.js user.js的 var express = require('express'); var router = express.Router(); var multer = require('multer'); var passport = require('passport'); var LocalStrategy = require('passport-local').Strategy; var bodyParser = require('body-parser'); var User = require('../models/user'); var upload = multer({ dest: './uploads' }); // create application/json parser var jsonParser = bodyParser.json(); […]

尝试使用body-parser从Express v4parsingPOST请求中的JSON对象

我目前正在更多地介绍自己的服务器代码,特别是使用Node.js和Express,并且在接收和parsingPOST请求发送的JSON对象时遇到了很多麻烦。 我看了很多其他的post(链接到下面),我无法弄清楚我的生活出了什么问题。 以下是我所看到的: Javascript:用AJAX Javascript发送JSON对象:用Ajax发送JSON对象? 如何在Express应用程序中使用JSON POST数据如何使用Express应用程序中的JSON POST数据使用XMLHttpRequest 发送POST数据使用XMLHttpRequest发送POST数据如何在Node.js中提取POST数据? 如何在Node.js中提取POST数据? 所有这些都使我走上了正轨,但是我并不在那里寻求帮助。 这是我正在使用的代码: 发送POST请求 var button = document.querySelector("#button"); button.onclick = function(){ console.log("Getting data from local server"); var xhr = new XMLHttpRequest(); xhr.open("POST", "http://localhost:3000/data/test.json", true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.send(JSON.stringify({"latitude": 41.2418, "longitude": -70.8898})); }; 在服务器中处理POST请求 var http = require("http"); var fs = require("fs"); var express = require("express"); var app […]

在request.pipe之前防止快速的body-parser移除主体

我正在尝试创build一个简单的快递中间件filter,它应该查看POST正文并确定是否应该将其传送到正确的服务器,或者是否被阻止。 如果我使用body-parser ,看起来我确实可以获得req.body ,但是当我将请求传递给另一个外部服务器时,它从请求中消失。 我试图解决这个问题的方法如下: //Router router.route('') .post(authController.isAuthenticated, urlHelper.bodyParser, //Without these two, everything pipes correctly urlHelper.filterBasedOnSomething, //Without these two, everything pipes correctly urlHelper.pipeToTrustedZone); 在urlHelper中: const filterBasedOnSomething = function (req, res, next) { if (req.body && req.body.something === 'some string' && req.body.somethingElse === 'some other value') { return res.status(403).send("You shall not pass"); } else { next(); […]

为什么我们需要快速的身体分析器?

我遇到了很多博客和文章,他们build议使用body-parser来分析请求主体数据。 有没有办法parsing数据或从身体获取身体数据,而不使用任何中间件?

错误:第一个标记之前的非空白。 在node.js body-parser中

var bodyParser = require('body-parser'), require('body-parser-xml')(bodyParser); function test(req, res) { console.log(req.body); res.sendStatus(200); } module.exports = { middleware: [ bodyParser.json(), bodyParser.text(), bodyParser.xml({ xmlParseOptions: { normalize: true, normalizeTags: true, explicitArray: true } }) ], '/test': [{ get: test }], } 在上面的代码中,我试图提取application/xml, text/xml, application/json, text, text.plain, application/x-www-form-urlencoded 。 但是我得到的错误Error: Non-whitespace before first tag. 当我传递原始内容与text/plain标题。 我如何使用body-parser中间件来提取所有上面的请求主体内容?

Node.js:login后在URL中用令牌(JWT)发送新的请求

在用户login并生成一个令牌后,我想在头部或类似的地方自动发送它。 到目前为止,我设法生成令牌,并检查它是否存在,如果它是有效的,似乎工作正常,只要我复制粘贴它的url为“?令牌=生成的令牌”。 我无法理解如何发送邮件,而无需自己写在邮递员的URL中。 我正在使用这些模块: performance 身体parsing器 mongoose JsonWebToken 所以我很好奇,如果我select只在login的时候生成token,如果我需要把它添加到用户的Schema中。 我现在不想使用护照,因为我想先了解基本知识。 在search了一段时间(包括jwt文档)之后,我没有真正find可以理解和实现的东西。 所以在这里,如果有人能指引我朝着正确的方向发展,那会很棒。 对不起,缩进和感谢提前。 这里是一些代码: 智威汤逊- middleware.js var jwt = require('jsonwebtoken'); var secret = 'mySecret'; module.exports = function (req, res, next) { var token = req.body.token || req.headers['x-access-token'] || req.query.token; if(!token) { return res.status(404).send({error:'No token found'}); } else { jwt.verify(token, secret, function(err, decode) { if(err) { […]