无法将“请求对象参数”值直接传递给对象“渲染”?

时间:2019-01-22 20:21:35

标签: node.js express

当我在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)

0 个答案:

没有答案