노드 익스프레스에서 라우트를 확장 가능하게 설정하려고합니다.확장 가능 노드 익스프레스 라우트
나는 워킹 경로를 설정하는 방법을 알고있다 ... 그것은 내가 고민하고있는 실패/불일치이다. 더 구체적으로 말하자면 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');
});
제안에 감사드립니다. –