Node.js 如何从nodejs/express中的请求对象检索路由信息
我想在nodejs(10.16)和express(4.16)项目中收到请求时检查路由。服务器侦听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) =&
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) => {...}
调用路由时(例如,
${GLOBAL.BASE_URL}/api/users/new
),我如何知道正在从paramreq
调用哪个路由?好的,据我所知,从应用程序根文件访问用户路由(在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})`找到这个帖子