Node / Express.js - 覆盖在哪里查找每个请求的“视图”文件夹 [英] Node/Express.js - Overriding where to look for the 'Views' folder for each request

查看:99
本文介绍了Node / Express.js - 覆盖在哪里查找每个请求的“视图”文件夹的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  app.configure(function (){
app.set('views',__dirname +'/ views');
.... snip ....
});

...所有我的视图模板都进入视图文件夹。



是否可以覆盖Express根据请求查询请求的视图?例如,如下所示:

  app.get('/',function(req,res){
res.render('index',{viewFolder:'otherViews'});
});

我问的原因是我正在复制Microsoft ASP.NET MVC的区域功能,其中每个区域获取它自己的视图文件夹。

解决方案

'views'设置是根目录,所以你应该可以指定一个子在层次结构中的文件夹:

  app.get('/',function(req,res){
res .render('areaName / viewName');
});

这意味着您的区域需要是子文件夹,但它允许您完成分离你正在寻找。


In my Node/Express.js project I can set the views folder globally like so:

app.configure(function() {
    app.set('views', __dirname + '/views');
    .... snip ....
});

...and all my view templates go into the views folder.

Is it possible to override where Express looks for views on a request by request basis? For instance, something like the following:

app.get('/', function(req, res) {
    res.render('index', { viewFolder: 'otherViews' });
});

The reason I ask is I'm trying to replicate Microsoft ASP.NET MVC's Areas functionality where each Area gets it's own views folder.

解决方案

The 'views' setting is the root directory, so you should be able to specify a sub-folder in the hierarchy:

app.get('/', function(req, res) {
    res.render('areaName/viewName');
});

It means your 'areas' need to be sub-folders, but it allows you to accomplish the separation you are looking for.

这篇关于Node / Express.js - 覆盖在哪里查找每个请求的“视图”文件夹的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆