Node/Express.js - Overriding where to look for the 'Views' folder for each request

后端 未结 3 1728
南笙
南笙 2021-02-03 23:18

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

app.configure(function() {
    app.set(\'views\', __dirname + \'/views\');
    .... sn         


        
相关标签:
3条回答
  • 2021-02-03 23:59

    Full path works too

    app.get('/', function(req, res) {
        res.render(path.join(__dirname, 'view.jade'));
    });
    
    0 讨论(0)
  • 2021-02-04 00:05

    As a more modular solution, I did something like this in sails.js. Just over-ride the render function for the given request in your middleware. :)

    var curRender = res.render;
    res.render = function(path, locals, func) {
        var args = [res.locals.explicitPath + '/' + path, locals, func];
        curRender.apply(this, args);
    };
    
    0 讨论(0)
  • 2021-02-04 00:18

    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.

    0 讨论(0)
提交回复
热议问题