【问题标题】:Node.js Express rendering any *.jadeNode.js Express 渲染任何 *.jade
【发布时间】:2014-06-01 08:05:05
【问题描述】:

我有一个运行以下代码的测试 node.js 服务器:

var app = require('express')();

app.set('views', __dirname + '/public');
app.set('view engine', 'jade');

app.get('/', function(req, res) {
    res.render('index.jade', {name: "Test data."});
});

app.listen(3000);

此代码有效。我想知道根据 url 选择 .jade 文件而不对其进行硬编码的最佳做法是什么,就像您可能使用 express.static 来处理 html 文件一样。当然,我也不希望存在直接的路径关联(而是将不同的路由分配给不同的目录或目录组。)似乎没有关于该主题的大量可靠信息。任何事情都会有所帮助。谢谢。

【问题讨论】:

    标签: node.js web-applications express routes pug


    【解决方案1】:

    利用 splats 你可以做这样的事情:

        var app = require('express')();
    
        app.set('view engine', 'jade');
    
        // /foo/Sam/path/to/view.jade yield a rendering of 'path/to/view.jade' with name: 'Sam'
        app.get('/foo/:name/*.*', function(req, res) {
          res.render(req.params.join('.'), {name: req.params.name});
        });
    
        app.listen(3000);
    

    【讨论】:

    • 谢谢!你的帖子给了我一些想法,这些想法让我回到了正轨。我希望我能对你的答案投赞成票,但显然我还是对系统不熟悉才能做到这一点?无论如何,谢谢!
    • 你可以接受答案,如果它解决了你的问题:)
    猜你喜欢
    • 2014-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-15
    • 1970-01-01
    • 1970-01-01
    • 2013-04-15
    相关资源
    最近更新 更多