저는 현재 사용자가 각 요청의 헤더에 인증 토큰을 전달해야하는 API를 작성 중입니다. 이제 포괄 경로를 만들 수 있다는 것을 알고 있습니다.
app.get('/*', function(req,res){
});
하지만 /login
또는 같은 특정 경로를 제외하도록 어떻게 만들지 궁금합니다 /
.
답변
사용자가 /login
또는 /
에 액세스 할 때 어떤 일이 발생하고 싶은지 잘 모르겠지만 별도의 경로를 만들 수 있습니다. catch-all 전에 선언하면 들어오는 요청을 처리 할 때 첫 번째 딥이 발생합니다.
app.get('/login', function(req, res) {
...
});
app.get('/', function(req, res) {
...
});
app.get('*', function(req, res) {
...
});
답변
제외하려는 경로 뒤에 항상 포괄 경로를 배치 할 수 있습니다 ( robertklep 답변 참조 ).
그러나 때로는 경로의 순서에 관심이 없을 때가 있습니다. 이 경우에도 원하는 작업을 수행 할 수 있습니다.
app.get('*', function(req, res, next) {
if (req.url === '/' || req.url === '/login') return next();
...
});
답변
모든 요청에서 자격 증명 또는 신뢰성을 확인하려면 Express Routing 기능 “all”을 사용해야합니다. 다음과 같이 사용할 수 있습니다.
app.all('/api/*', function(req, res, next){
console.log('General Validations');
next();
});
라우팅 항목 앞에 배치 할 수 있습니다.
이 경우 “/ api / “를 경로로 사용 했으므로 “/ 했으므로 필요에 맞게 “를 .
여기 누군가를 돕는 것이 너무 늦지 않았기를 바랍니다.
답변
포괄적 인 경로 처리기를 만드는 또 다른 방법은 다음과 같습니다.
app.get('/login', function(req, res) {
//... login page
});
app.get('/', function(req, res) {
//...index page
});
app.get('/:pageCalled', function(req, res) {
console.log('retrieving page: ' + req.params.pageCalled);
//... mypage.html
});
이것은 robertklep의 (허용되는) 답변과 똑같이 작동하지만 사용자가 실제로 요청한 것에 대한 자세한 정보를 제공합니다. 이제 req.params.pageCalled
요청되는 페이지를 나타내는 슬러그 가 있으며 여러 페이지가있는 경우 사용자를 적절한 페이지로 안내 할 수 있습니다.
하나 gotchya는,이 방법 (들으 @agmin)에 대한 조심하는 /:pageCalled
단 하나와 경로를 잡을 것입니다 /
당신이 얻을되지 않도록, /route/1
같은 등을 사용하여 추가 슬러그 /:pageCalled/:subPageCalled
더 페이지 (들으 @softcode)