快递从路线文件中获取完整的url

所以我有一个处理来自特定端点的所有请求的路由js文件。我需要从中间件中获取完整的url,而不是相对url,但似乎没有工作。 这是我的路线文件:

var express = require('express'); var passport = require('passport'); var router = express.Router(); var Member = require('../model/member'); var isAuthenticated = require('./middleware').isAuthenticated; var responseData = { title: 'Dita Admin - Members', id: 'members', heading: 'Members', members: [], errors: {}, create: true }; /* GET members page. */ router.get('/', isAuthenticated, function (req, res, next) { Member.find({}, function (err, members) { if (err) { console.log(err); } else { responseData.members = members; } res.render('members', responseData); }); }); module.exports = router; 

这里是中间件:

 var isAuthenticated = function (req, res, next) { if (req.isAuthenticated()) { return next(); } req.session.returnTo = req.path; console.log(req.session.returnTo); res.redirect('/login'); }; module.exports = { isAuthenticated: isAuthenticated }; 

我不断收到/每当我尝试打印的url。 但是端点是/members 。 提前致谢。

请求对象上放置了一个baseUrl属性,它为您提供了一个路由器实例挂载的URLpath。 所以你可以使用:

req.baseUrl

例如在你的成员路由器中:

 router.get('/', isAuthenticated, function (req, res, next) { console.log(req.baseUrl); // /members });