req.body 将中间件应用于 GET 路由时为空
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
时,输出是:
{}
{}
密码在Githubhttps://github.com/guoyunhe/shrgrp
You are calling GET
and expecting data from req.body
which is not gonna work
使用 GET
调用您可以通过两种方式获取数据:
if it is parameter
then you can get in req.params
If it is query string
then you can get in req.query
我编写了一个用于身份验证的路由器和一个用于解析重定向参数并保存在会话中的中间件。但是在解析查询参数的时候,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
时,输出是:
{}
{}
密码在Githubhttps://github.com/guoyunhe/shrgrp
You are calling
GET
and expecting data fromreq.body
which is not gonna work
使用 GET
调用您可以通过两种方式获取数据:
if it is
parameter
then you can get inreq.params
If it is
query string
then you can get inreq.query