NodeJS Express:不同的视图目录不同的url?

从我知道的文档中,我可以将我的Express 4.12.x设置为使用多个视图目录,如下所示:

app.set('views', [ __dirname + '/views1', __dirname + '/views2' ]); 

但我想有不同的网站从不同的视图目录获得意见。 所以我想要像:

 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 in /views1 ,然后在/views2 ,不pipeURL如何。 我知道这是Express的正常行为,但我很想知道是否有可能使我的想法工作。

在重新阅读快速文档之后,我使用Express subapps作为中间件来实现它的工作:

 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);