필자는 전 세계적인 미들웨어 기능을 문서 및 모든 주제에 대한 포럼 게시판에 설명 된대로 구성한다고 말할 수 있지만 호출되지는 않습니다. 내가 뭘 잘못하고 있는지 누가 알 겠어? 3.2.5를 표현한다. 다음 "경로 안에"익스프레스 글로벌 미들웨어가 호출되지 않음
Express server listening on port 9000
inside route
GET/200 7ms - 2b
나는 "미들웨어 내부에"볼 것으로 예상 : 로그 출력에서 나는 다음을 참조하십시오. 대신, 나는 단지 "내부 경로"를 본다.
코드 :
var express = require('express'), http=require('http'), path=require('path');
var app = express();
app.enable('trust proxy');
app.set('port', process.env.PORT || 9000);
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.set('layout', 'layout');
app.use(require('express-ejs-layouts'));
app.use(express.favicon(__dirname + '/public/images/favicon.ico'));
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride())
app.use(express.cookieParser('kfiwknks'));
app.use(express.session());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
if ('development' == app.get('env')) {
app.use(express.errorHandler());
} else {
app.use(function(err, req, res, next){
console.error (error);
res.send (500, "Internal server error");
});
}
app.use (function (req, res, next) {
console.log ("inside middleware");
next();
});
app.get ("/", function (req, res) {
console.log ("inside route");
res.send(200);
});
http.createServer(app).listen(app.get('port'), function() {
console.log('Express server listening on port ' + app.get('port'));
});
이 관련 포스트 :
Express 3 error middleware not being called
미들웨어 에러 처리 다릅니다. 내 것은 바닐라 미들웨어입니다.
당신은'require ("path")' –
이 필요하다. 작업 예제에서 감사 패스가 필요하다. 게시물에 손으로 요구 문을 추가했습니다 (그리고 지금은 게시물에 추가 된 경로). 경로가 필요하지 않은 경우 코드가 간단히 폭파됩니다. – Jake
app.router를 사용하기 전에 미들웨어를 넣으십시오. – user568109