자습서에서이 코드를 사용하고 있습니다. 나는 여권을 가진 사용자를 구현했으며 app.use
은 UnauthorizedError
을 확인했으며 응용 프로그램의 제한된 부분에 대한 무단 액세스를 확인하는 방법을 자습서에서 권장했습니다.익스프레스 라우팅 - 권한이없는 오류 처리기가 오류 경로를 끊습니다.
잘못된 URL을 입력 할 때마다 웹 사이트가 중단되고 오류 처리가없고 브라우저에 메시지가 전송되지 않습니다. 나는 어제의 좋은 부분을 내 경로를 확인하는 데 보냈으며 눈부신 문제가없는 것 같았다.
그런데 오늘 나는 약간의 예민함을 가지고 Unauthorized error
에 대한 오류 검사를 주석 처리했으며 오류 처리는 모두 좋은 결과를 보였습니다. 여기에서 무슨 일이 일어나고 있는지에 대한 제안과 어떻게이 오류 검사를 올바르게 구현할 수 있습니까?
참고 : 알려진 URL 양호 경로에 대한 실제 무단 액세스가있는 경우이 오류 검사가 작동합니다. 로그인 한 경우에도 그러나 여전히 나쁜 URL을 잡을 수 없습니다. 아마도
app.use('/', routes);
app.use('/api', routesApi);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
// error handlers
// Catch unauthorised errors
app.use(function (err, req, res, next) {
if (err.name === 'UnauthorizedError') {
res.status(401);
res.json({"message" : err.name + ": " + err.message});
}
});
// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: err
});
});
}
// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
res.status(err.status || 500);
res.render('error', {
message: err.message,
error: {}
});
});
module.exports = app;
아마도 ... 그게 다야! – dedalux