我的主express服务器在Node.js中叫做app.js,当我试图访问URL参数时,它返回未定义。
app.use("/login", require(./routes/login));
app.use("/:id", require("./routes/users"));
当我尝试访问URL参数时,它返回undefined。
我尝试记录req.params。
const express = require('express');
const router = express.Router();
router.get('/dashboard', (req, res) => {
res.send(`Current Ornament Status and Data for ${req.params}`);
});
module.exports = router;
它给我一个空数组。
我猜测它的参数在路由后的另一个文件中无法访问。你能不能提出一个变通的办法?
我认为你错过了一些关于express.js路由的基本部分,这样做才有意义。
requires行意味着它正在加载另一段代码。所以你也需要向我们展示这一点。
:id的事情需要更长的解释。
假设我想让服务器处理网址finduser23。
其中23可以不同,可以是任何数字。我不会写99个不同版本的router.get,对吧?
router.get("/finduser/1",...
router.get("/finduser/2",...
router.get("/finduser/3",...
不,我们要做的是把它变成一个参数。
router.get("/finduser/:id",...
然后无论我们传递什么数字都会变成req.params.id,假设路由器传递的是req,res。
例:如果我们传递URL finderuser15,那么req.params.id = 15。
如果你只是通过finduser,那么req.params.id就会一无所获。
完整的细节可以在这里找到http:/expressjs.comenguiderouting.html#route-parameters。
你的例子。
router.get('/dashboard', (req, res)
没有任何参数,所以req. params. id什么都没有。