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