在Express Node.js上,我有这样的代码:
const express = require("express");
const app = express();
const testController = require("./Controllers/TestController");
app.use("/:isoLang/test", testController(router));如何从isoLang中获取TestController.js参数的值?
PS:
TestController.js中,我尝试过const isoLang = request.params.isoLang;,但它是未定义的request对象(来自TestController.js),但它不包含isoLang更新:
如下所示,解决方案是将路由器设置为:express.Router({ mergeParams: true })
希望它能帮到别人。
发布于 2021-02-23 17:56:36
似乎您需要将{ mergeParams: true }传递给您的路由器控制器,这样您就可以通过req.params访问所有
const express = require('express');
const app = express();
const controllers = (router) => {
router.get("/:param2/", (req, res) => {
console.log(req.params);
res.send('ok')
})
return router;
};
app.use("/:isoLang/test", controllers(express.Router({ mergeParams: true })));
app.listen(8080, () => {
console.log("service is ready on port 8080");
});请参阅路由器API文档
https://stackoverflow.com/questions/66338013
复制相似问题