내가 사이트의 일부에 대한 액세스를 방지해야 인증 미들웨어 추가하려고 해요 :제어 명령/연결 미들웨어
이/API를 호출app = express()
.get('/api/test', function (req, res) { ... })
.use('/api', function (req, res, next) {
if (req.param('key')) {
next();
} else {
res.json(401, {
message : 'Authentication failed'
});
res.end();
}
})
.get('/api/data', function (req, res) { ... });
그리고 내 기대/데이터가 먼저 처리됩니다 키 검사기로 검사 한 다음/api/data 핸들러로 검사합니다 (성공할 경우). 대신 '/ api/data'에 의해 처리 된 요청이 먼저 처리됩니다.
검사기가/api/something_that_does_not_exist에는 작동하지만/api/something_that_exist에는 작동하지 않는 것으로 보입니다.
아마도 express/connect 문서에서 뭔가를 놓쳤을 수 있습니까?
업데이트 나는 첫 번째 get/post 호출이 라우터 미들웨어를 초기화하여 먼저 실행된다는 사실을 추적했다.
테스트 할 때 작동해야하며 (Express 3.1.1과 함께) 테스트합니다. – robertklep
감사합니다. 코드 예제는 실제 코드에서 발췌 한 것이며 일부 경로를 추가 한 누락 된 중요한 부분을 보여줍니다. _before_ this 특정 .use –
아아아, 나는 이미 라우터 미들웨어라는 사실을 발견했습니다. 그것으로 괜찮아요. 나는 대답을 그대로 남겨두고, 다른 누군가를 도울 수 있습니다. – robertklep