实现了一个filter过滤器,所有的请求都会先经过这个函数,然后根据逻辑才能走到下一个next()。 问题是我在filter里面获取test请求头后,在后面的get('/test')路由里面再取test请求头,取不到了,值为undefined。
怎么能再把test请求头set回req里面?
var server = express.createServer();
//实现的过滤函数 var filter = function (req, res, next) { var test = req.headers.test;//这时候是有值的,但是后面get('/test')里面就没值了。 //有没有可以将test在set回req里面的API?我翻遍了node的req和express的文档,没看到有 //或者有其他方法实现这种过滤技术吗? if (test) { next(); } else { return res.send('filter ok'); } };
server.configure(function () { server.use(express.bodyParser()); server.use(express.methodOverride()); server.use(filter);//使用filter进行过滤 server.use(server.router); });
server.get('/test',function(req,res){ //在这里再次取test请求头的值已经取不到了 var test = req.headers.test; //test = undefined; });