Javascript 快速路由器中的请求参数
我在快速路由器中访问请求参数时遇到问题 我的Javascript 快速路由器中的请求参数,javascript,express,express-router,Javascript,Express,Express Router,我在快速路由器中访问请求参数时遇到问题 我的server.js文件包含以下内容: app.use('/user/:id/profile', require('./routes/profile'); 这在我的/routes/profile.js文件中: router.get('/', (req, res) => { console.log(req.params.id); } 但是控制台日志打印未定义的。 我是一个新来表达的人,我觉得我缺少了一些关于路由工作原理的基本知识。 有人能
server.js
文件包含以下内容:
app.use('/user/:id/profile', require('./routes/profile');
这在我的/routes/profile.js
文件中:
router.get('/', (req, res) => {
console.log(req.params.id);
}
但是控制台日志打印未定义的
。
我是一个新来表达的人,我觉得我缺少了一些关于路由工作原理的基本知识。
有人能帮我吗
这是我的完整server.js
:
const express = require('express');
const app = express();
app.use(express.json());
app.use('/user/:id/profile', require('./routes/profile'));
app.listen(5000, () => console.log('Listening'));
const express = require('express');
const router = express.Router();
router.get('/', (req, res) => {
console.log(req.params.id);
res.status(200).send('In profile route');
});
module.exports = router;
这是我完整的profile.js
:
const express = require('express');
const app = express();
app.use(express.json());
app.use('/user/:id/profile', require('./routes/profile'));
app.listen(5000, () => console.log('Listening'));
const express = require('express');
const router = express.Router();
router.get('/', (req, res) => {
console.log(req.params.id);
res.status(200).send('In profile route');
});
module.exports = router;
URL参数不向路由器公开。您在这里有几个选项:
req.originalUrl
以获取用户id(不推荐)req.originalUrl
不受路由器装载点的影响,将保持为/user/112/profile
或您访问的任何urlprofile.js
中使用req.userId
)
/user/:id/profile
更改为/user
,然后编辑路由器以侦听/:id/profile
(不推荐)URL参数不向路由器公开。您在这里有几个选项:
req.originalUrl
以获取用户id(不推荐)req.originalUrl
不受路由器装载点的影响,将保持为/user/112/profile
或您访问的任何urlprofile.js
中使用req.userId
)
/user/:id/profile
更改为/user
,然后编辑路由器以侦听/:id/profile
(不推荐)你访问的网址是什么?您是否可以打印出整个
req.params
?你能发送完整的profile.js
文件吗?@Aplet123我正在点击http://localhost:5000/user/112/profile
。除了require语句和module.exports=router
@Aplet123是的,我能做console.log(req.params)
但这也是空的。那么您介意分享所有这些信息吗?@Aplet123编辑了我的问题,将完整的文件包括在内。您访问的是哪个URL?您是否可以打印出整个req.params
?你能发送完整的profile.js
文件吗?@Aplet123我正在点击http://localhost:5000/user/112/profile
。除了require语句和module.exports=router
@Aplet123是的,我能做console.log(req.params)
但这也是空的,那么你介意分享所有这些信息吗?@Aplet123编辑了我的问题,将完整的文件包括在内。我见过很多例子,人们使用选项3之类的东西,他们在路由器中有参数。为什么不推荐这种方法?我认为/profile
不是/user/:id
下的唯一内容,所以最好不要装载到整个/user
。另外,方法2的结果通常是更干净的代码。@AneeshandTime很高兴我能帮助您!我见过很多例子,人们使用选项3,在路由器中有参数。为什么不推荐这种方法?我认为/profile
不是/user/:id
下的唯一内容,所以最好不要装载到整个/user
。另外,方法2的结果通常是更干净的代码。@AneeshandTime很高兴我能帮助您!