[英]Passing a variable to an external route
我有一个Node js和Express Web应用程序。
我的app.js看起来像
var pages_route = require('./route/pages');
/*
---------------------
------ ROUTE --------
---------------------
*/
app.get('/', pages_route.index);//home
我的route / pages.js看起来像
exports.index = function(req, res){
res.render( 'home.ejs');
};
我正在尝试传递来自app.js文件的每条路线的视图名称,如下所示:
app.get('/', pages_route.index), template = 'home';
在route / pages.js中
exports.index = function(req, res){
res.render( template + '.ejs');
};
此解决方案适用于单条路线,但是当我创建多个
app.get('/', pages_route.index), template = 'home';
app.get('/custompage', pages_route.custom), template = 'skeleton';
该应用程序将采用所有路线的最后一个视图名称,在这种情况下,将为我的所有路线打印“骨架”视图。
我不想为每个路由(例如template1,template2,template3等)创建不同的实例。我只想找到一个与示例相似的解决方案。
谢谢!!
Express不会像本地节点一样给您req
和res
。 这也给你next
接下来,您可以构建中间件,这些中间件是在处理请求时出现的功能,但不一定会结束请求。
这是您的用例的示例:
// middleware
function setTemplate (template) {
return function applyTemplate (req, res, next) {
req.template = template;
next();
};
}
// route
app.get('/', setTemplate('home'), pages_route.index);
// handler
exports.index = function (req, res) {
res.render(req.template + '.ejs');
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.