当我在res.render中使用req.param值时,视图会正确加载,但随后我还会收到错误消息(错误:找不到模块“ css”)。
我正在使用Node / Express。我的路线包含一个参数值,控制器将使用该参数来识别要渲染的正确视图。
此代码(后几行)加载正确的视图,但同时也会显示控制台错误(见下文):
---我的路线:
router.get('/go/:user_homePage',controller_login.redirectHomepage);
---从“我的控制器”:
exports.redirectHomepage = function(req,res){
res.render(req.params.user_homePage);
}
重要说明:我的redirectHomepage也正在做其他一些事情。这就是为什么我使用路由(带有param)以这种方式调用视图的原因。
这样的GET请求:“ / go / Shipping_Department”确实加载了正确的视图(Shipping_Department.ejs),但它还会发送一个控制台错误(错误:找不到模块'css')。
当我将控制器功能更改为此(请参阅以下几行)时,我仍然呈现正确的视图并且没有控制台错误。:
exports.redirectHomepage = function(req,res){
var l_goto_homepage = req.params.user_homePage;
switch(l_goto_homepage) {
case "Customer":
var hPage = "Customer_1";
break;
case "Shipping_Department":
var hPage = "Shipping_Department";
break;
}
res.render(hPage);
}
为什么首先将req.param值分配给变量(l_got_homepage)会有所不同? req.params.user_homePage是否已经是字符串值?
谢谢。
这是控制台错误:
[nodemon] restarting due to changes...
[nodemon] starting `node main.js`
web_proj2 server is running
Error: Cannot find module 'css'
at Function.Module._resolveFilename (module.js:536:15)
at Function.Module._load (module.js:466:25)
at Module.require (module.js:579:17)
at require (internal/module.js:11:18)
at new View (C:\Users\Bill\node_projects\web_Proj2\node_modules\express\lib\view.js:81:14)
at Function.render (C:\Users\Bill\node_projects\web_Proj2\node_modules\express\lib\application.js:570:12)
at ServerResponse.render (C:\Users\Bill\node_projects\web_Proj2\node_modules\express\lib\response.js:1008:7)
at exports.redirectHomepage (C:\Users\Bill\node_projects\web_Proj2\controllers\controller_login.js:281:7)
at Layer.handle [as handle_request] (C:\Users\Bill\node_projects\web_Proj2\node_modules\express\lib\router\layer.js:95:5)
at next (C:\Users\Bill\node_projects\web_Proj2\node_modules\express\lib\router\route.js:137:13)
at Route.dispatch (C:\Users\Bill\node_projects\web_Proj2\node_modules\express\lib\router\route.js:112:3)
at Layer.handle [as handle_request] (C:\Users\Bill\node_projects\web_Proj2\node_modules\express\lib\router\layer.js:95:5)