从我所知道的文档中,我可以将Express 4.12.x设置为使用多个视图目录,如下所示:
app.set('views', [
__dirname + '/views1',
__dirname + '/views2'
]);
但是我想让不同的url从不同的视图目录中获取视图。所以我想要像:
app.get('/views1/:view', function (req, res) {
res.render(req.params.view); //get the views only from /views1
});
app.get('/views2/:view', function (req, res) {
res.render(req.params.view); //get the views only from /views2
});
目前发生的事情是,Express始终检查:view
中的/views1
,然后检查/views2
中的class Animal {}
class Cat extends Animal {}
class Kitten extends Cat{}
function foo<A extends Animal>(a: A) { /* */ }
,无论网址如何。我知道这是Express的正常行为,但我很想知道是否可以让我的想法发挥作用。
答案 0 :(得分:1)
重新阅读Express文档之后,我只是设法使用Express子应用程序作为中间件来实现它:
var express = require('express');
var app = express();
var views1app = express();
var views2app = express();
views1app.set('views', __dirname + '/views1');
views1app.set('view engine', 'pug');
views1app.get('/views1/:view', function (req, res) {
res.render(req.params.view);
});
views2app.set('views', __dirname + '/views2');
views2app.set('view engine', 'pug');
views2app.get('/views2/:view', function (req, res) {
res.render(req.params.view);
});
app.use(views1app, views2app);