像Angular partial一样渲染Jade

3

我通过Joe Eames的视频课程学习了MEAN的概念。这门课程很有趣,因为教授如何使用JADE模板作为部分来替代HTML。

\bin
\node_modules
\public
    \app
        \main
            someCntr.js
            otherCntr.js
        main.js
\server
    \views
        \partials
            main.jade
            featured-courses.jade
            new-courses.jade

一切都进行得很顺利,直到他将这些jade模板从\views\includes移动到\public\app\main\public\app\courses中,在Express 3.4中起作用。但是在我的Express 4中,这个小技巧不起作用了。

他之前的server.js文件如下:

app.set('views', path.join(__dirname, '/server/views'));
app.set('view engine', 'jade');

app.get('/partials/:partialPath', function(req, res) {
    res.render('partials/' + req.params.partialPath);
});

在移动之后
app.set('views', path.join(__dirname, '/server/views'));
app.set('view engine', 'jade');

app.get('/partials/*', function(req, res) {
  res.render('public/app/' + req.params);
});
2个回答

1

0
我也在学习这门课程,遇到了同样的问题... 解决方法是使用req.params[0]。在server.js文件中,路由到部分视图如下:
而不是
app.get('/partials/*', function(req, res) {
  res.render('public/app/' + req.params);
});

写:

app.get('/partials/*', function(req, res) {
  res.render('../../public/app/' + req.params[0]);
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接