Node.js 如何从nodejs/express中的请求对象检索路由信息

Node.js 如何从nodejs/express中的请求对象检索路由信息,node.js,express,Node.js,Express,我想在nodejs(10.16)和express(4.16)项目中收到请求时检查路由。服务器侦听localhost上的端口3000。以下是用户路线: const users = require('../routes/users'); module.exports = function(app, io) { app.use('/api/users', users); } 在routeusers.js中,有: router.post('/new', async (req, res) =&

我想在nodejs(10.16)和express(4.16)项目中收到请求时检查路由。服务器侦听
localhost
上的端口3000。以下是
用户
路线:

const users = require('../routes/users');

module.exports = function(app, io) {
    app.use('/api/users', users);
}
在route
users.js
中,有:

router.post('/new', async (req, res) => {...}

调用路由时(例如,
${GLOBAL.BASE_URL}/api/users/new
),我如何知道正在从param
req
调用哪个路由?

好的,据我所知,从应用程序根文件访问用户路由(在users.js文件中声明)时遇到问题

由于您正在模块化路由,因此需要确保导出路由模块以从其他文件获得访问权限:

app.js:

const UserRouter = require('../routes/users');

module.exports = function(app, io) {
    app.use('/api/users', UserRouter);
}
users.js:

const UserRouter = express.Router()

UserRouter.post('/new', async (req, res) => {...};


module.exports = UserRouter;


你到底需要什么信息?我的意思是你想提取什么?需要它称为
/users/new
的确切路线不,这些都完成了,路线工作正常。我只需要知道调用的是哪个路由。好的,现在我知道了,如果你想得到被调用请求的完整URL,你可以直接从你的请求中提取它,就像你想的那样:
let completeUrl=req.protocol+”:/“+req.get('host')+req.originalUrl
或者如果您预先提供了一个更干净的实现,您可以使用
url
模块:`import url from'url'extractUrl=(req)=>return url.format({协议:req.protocol,主机:req.get('host'),路径名:req.originalUrl})`找到这个帖子