bin/www 파일과 app.js 파일과 함께 express-generator로 생성 된 앱이 있습니다. app.js에서 다음을 추가했습니다.노드/익스프레스 4 미들웨어가 작동하지 않습니다
app.use(function(req, res, next){
console.log("--------new middleware");
next();
});
하지만 미들웨어를 전혀 호출하지 않습니다. 응용 프로그램의 나머지 부분은 잘 작동하며 서버가 실행 중이고 요청을 수신하고 있음을 확인했습니다. 익스프레스 미들웨어에 대해 알고 노선
var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
var session = require('express-session');
var passport = require('passport');
var routes = require('./routes/index');
var users = require('./routes/users');
// 많은 경로
app.use(function(req, res, next){
console.log("--------new middleware");
next();
});
// app.use(auth.isLoggedIn);
// catch 404 and forward to error handler
app.use(function(req, res, next) {
var err = new Error('Not Found');
err.status = 404;
next(err);
});
// 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;
미들웨어에 대한 기능 서명이 잘못되었습니다. 'err' 인수는 없습니다. 위의 내 게시물 당 http://expressjs.com/en/4x/api.html#app.use – jfriend00
을 참조하십시오. 나는 잘하지 않고도 시도했습니다. (.. 앞에서 잘못을 범하지 않고도 시도했습니다.) 나는 그것을 더 분명하게해야한다. – Mankind1023
서버가 실행 중입니까? 요청하는 중입니까? 'app.get ('/', ...)'가 작동하지 않는다면 서버가 제대로 실행되고 있지 않거나 제대로 초기화되지 않은 것입니다. 두 번째 코드 블록이 정확하고 다른 일이 올바르게 수행되면 작동합니다. 따라서 두 번째 코드 블록이 작동하지 않는다면 공개하지 않은 코드에 다른 오류가 있습니다. 우리는 나머지 코드가 무엇이 잘못된지 알아야합니다. – jfriend00