node.js - Express 从路由文件中获取完整 url

标签 node.js express

所以我有一个路由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
};

每当我尝试打印网址时,我都会收到 / 。但端点是/members。 提前致谢。

最佳答案

请求对象上有一个 baseUrl 属性,它为您提供了安装路由器实例的 URL 路径。所以你可以使用:

req.baseUrl

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

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

关于node.js - Express 从路由文件中获取完整 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42254298/

相关文章:

node.js - socket.io 不会关闭之前的连接

javascript - 为什么我会收到此错误? dest.on 不是一个函数 - 使用 gulp-file-include

javascript - Nodejs服务器: Failed to load resource: the server responded with a status of 404 (Not Found)

javascript - 同步和递归文件系统文件查找

javascript - 如何访问node.js模块中的查询参数?

node.js - 计划任务 : Got error: connect ECONNREFUSED but not getting the response

javascript - 为什么我的express.js 无法运行?

node.js - 将express js登录到输出文件?

node.js - 如何将 socket.io 与 webpack-hot-middleware 一起使用?

javascript - Node JS 具有 oracleDB 可重用功能