나는 익스프레스의 겉으로보기에는 좋지 않은 문서로 인해 완전히 혼란 스럽습니다. 아주 간단한 것을 보관하고 싶습니다. express
에 일치하지 않는 모든 경로에 대해 맞춤 404를 반환하십시오. 첫째, 이것은 매우 정직 같다 : 유효한 URL이 개방되었을 때Express에서 404 대체 경로
app.get('/oembed', oembed()); // a valid route
app.get('/health', health()); // another one
app.get('*', notFound()); // catch everything else and return a 404
그러나, (같은 /oembed
) express
이 경로를 통해 작업을 계속하고 notFound()
뿐만 아니라를 호출 끝납니다. 여전히 내 /oembed
응답을 볼 수 있지만 본체가 이미 전송되었을 때 notFound()
이 헤더 (404
)를 설정하려고한다는 내용의 콘솔에 오류가 발생합니다.
function notFound() {
return (err, req, res, next) => {
console.log(err);
res.sendStatus(404);
next(err);
};
}
같은 middleware that catches errors을 구현하기 위해 노력하고 app.use(notFound());
으로 추가,하지만이 경우에도 전화를받을 수 없습니다. 나는 이것을 인터넷에서 (예를 들어 구식이 아니거나 잘못이 아님) 찾아 내기가 어렵고 공식 문서는이 표준적인 사용 사례에 특유한 것을 갖고있는 것 같지 않습니다. 나는 여기에 달라 붙어서 왜 그런지 모르겠다.
'/ oembed' 경로는 어떻게 생겼습니까? –
https://gist.github.com/LukasBombach/48424822c10633ac4bb5944ea6b8873b 실제 미들웨어 항목이 발생하는 코드에 주석을 달았습니다. – Lukas