![](/img/trans.png)
[英]Passing formData to Express middleware, Req.body is returning empty object
[英]req.body is empty when apply middleware to a GET route
我写了一个用于身份验证的路由器和一个中间件来解析重定向参数并保存在会话中。 但是,当解析查询参数时,req.body和req.params均为空。
router.js
/* Route for Facebook login. This is the only login option for now. */
var router = require('express').Router();
var passport = require('passport');
var redirect = require('../middlewares/redirect');
/**
* facebook oauth
*/
router.get('/facebook', redirect.parse(), passport.authenticate('facebook'));
redirect.js
/**
* save the redirect parameter to session
*
* @param {Object} options options for the middleware
*/
module.exports.parse = function (options) {
return function (req, res, next) {
console.log(req.body);
console.log(req.params);
if (req.body.redirect) {
req.session.redirect = req.body.redirect;
console.log(req.body.redirect);
console.log(req.session.redirect);
req.session.save();
}
next();
};
};
当我致电/auth/facebook?redirect=/groups
,输出为:
{}
{}
该代码在Github上https://github.com/guoyunhe/shrgrp
您正在呼叫
GET
并期望来自req.body
数据无法正常工作
通过GET
调用,您可以通过两种方式获取数据:
如果它是
parameter
则可以进入req.params
如果它是
query string
则可以进入req.query
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.