我想在Node Express中设置可扩展的路由。可伸缩节点快速路由
我明白如何设置工作路线......这是我努力的失败/不匹配。更具体地说,我正在努力处理404错误。
这是我有...
app.get('/:folder',function(req,res) {
var path = 'site/' + req.params.folder + '/index.jade';
res.render(path);
});
app.get('/:folder/:topic',function(req,res) {
var path = 'site/' + req.params.folder + '/' + req.params.topic;
res.render(path);
});
app.use(function(req, res, next){
res.status(404).render('site/404.jade');
});
面临的挑战是,:文件夹:主题将匹配任何使404将永远不会触发。我不想硬编码我们所有的文件夹和主题名称。那么,我应该如何设置我的路由,以便在文件夹/主题不存在的情况下,这些请求会落到404上?
谢谢。
UPDATE
最后,工作溶液如下。感谢大家。
var fs = require('fs');
app.get('/:folder',function(req,res,next) {
var path = __dirname + '/views/site/' + req.params.folder + '/index.jade';
if(fs.existsSync(path))
{
res.render(path);
}
else
{
next();
}
});
app.get('/:folder/:topic',function(req,res,next) {
var path = __dirname + '/views/site/' + req.params.folder + '/' + req.params.topic + '.jade';
if(fs.existsSync(path))
{
res.render(path);
}
else
{
next();
}
});
app.use(function(req, res){
res.status(404).render('site/404.jade');
});
感谢大家的建议。 – 2014-09-24 20:21:55