본문 바로가기

웹프로그래밍/node.js & Typescript

[node.js] Most middleware (like logger) is no longer bundled with Express and must be installed separately...

반응형


   『모던 웹을 위한 Node.js 프로그래밍』보면서 차근히 따라하고 있는데..  express에서 미들웨어 사용하다가 난관에 부딪혔다.


   logger 쓰려고 했더니, 에러가 빡!! 미들웨어가 더이상 번들로 설치되어 있는 게 아니니 따로 설치하란다. 이게 뭔...?


   또다시 구글링... 구글링구글구긆릉르르르ㅏ르르르르 


   http://stackoverflow.com/questions/23526356/heroku-node-js-server-crash-with-error-most-middleware-like-logger-is-no-lo


    ↑ 이 사람 글을 보니, 2가지 방법이 있댄다. logger 대신에 morgan을 설치해서 사용하든가, express가 설치된 폴더 안에서 package.json 파일을 찾아서 express 버전을 3.x대로 변경해주면 된다나.


   좀더 찾아보니 morgan이 4.x 버전에서는 logger을 대신해서 같은 역할을 하는 미들웨어란다.


   고로.. 4.x 버전에서는 이제 아래와 같이 써줘야 에러없이 잘 돌아간다. (npm install morgan으로 우선 morgan 설치해줘야 함)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// 모듈 추출
var express = require("express");
var morgan = require("morgan");
 
// 서버 생성
var app = express();
 
// 미들웨어 설정
// app.use(express.logger()); // 3.X 버전에서만 실행되고 4.X 버전에서는 에러 발생.
 
//app.use(morgan()); // 고로, 4.X 버전에서는 morgan을 사용해야 함. logger와 같은 역할.
app.use(morgan('dev'));
 
app.use(function (request, response, next) {
    response.send("<h1>come on express~~</h1>");
});
 
// 서버 실행
http.createServer(app).listen(1799, function () {
    console.log("Server Running at http://127.0.0.1:1799");
});



   http://blog.naver.com/PostView.nhn?blogId=rintiantta&logNo=40207854837


   ↑ 그리고 우연찮게 검색 중에 책의 저자가 운영하는 블로그를 발견했는데.. 헐... 뭐 바뀐 게 이리 많아?


   https://github.com/strongloop/express/wiki/Migrating-from-3.x-to-4.x


   ↑ 일단 이제 막 express 시작하는 참이라 아직 뭐가 뭔지 잘 모르겠지만,, 버전 업에 따른 변경 사항에 이것도 좀 참고해야겠다.

반응형