- 발생현상
서비스 실행시 발생 오류
baesunghan:~/Documents/workspace/nodejs/exam_mysql$node app.js
/Users/baesunghan/Documents/workspace/nodejs/node_modules/express/lib/application.js:120 throw new Error('\'app.router\' is deprecated!\nPlease see the 3.x to 4. ^ Error: 'app.router' is deprecated! Please see the 3.x to 4.x migration guide for details on how to update your app. at EventEmitter.Object.defineProperty.get (/Users/baesunghan/Documents/workspace/nodejs/node_modules/express/lib/application.js:120:13) at Object.<anonymous> (/Users/baesunghan/Documents/workspace/nodejs/exam_mysql/app.js:17:12) at Module._compile (module.js:460:26) at Object.Module._extensions..js (module.js:478:10) at Module.load (module.js:355:32) at Function.Module._load (module.js:310:12) at Function.Module.runMain (module.js:501:10) at startup (node.js:129:16) at node.js:814:3
baesunghan:~/Documents/workspace/nodejs/exam_mysql$
|
- 발생원인
설치된 Express 모듈은 4.12.3 인데 router에 대한 코딩을 3.x방식으로 작성해서 발생한 문제
. 모듈 버젼 확인
baesunghan:~/Documents/workspace/nodejs/exam_mysql$npm list
/Users/baesunghan/Documents/workspace/nodejs ├── ejs@2.3.1 ├─┬ express@4.12.3 │ ├─┬ accepts@1.2.7 │ │ ├─┬ mime-types@2.0.11 │ │ │ └── mime-db@1.9.1 │ │ └── negotiator@0.5.3 │ ├── content-disposition@0.5.0 │ ├── content-type@1.0.1 │ ├── cookie@0.1.2 │ ├── cookie-signature@1.0.6
│ ├─┬ debug@2.1.3
|
. 3.x 방식 router 코딩
// 서버 생성
var app = express();
app.use(app.router);
// 서버 실행
http.createServer(app).listen(18585, function() {
console.log('server running at http://localhost:18585');
});
// router를 수행해서 페이지 분기
// 리스트 조회
app.get('/', function(request, response) {
// list.html을 읽음
fs.readFile('list.html', 'utf-8', function(error, data){
// mysql 에서 데이터 query
client.query('SELECT * FROM products', function (error, results) {
// 결과 리턴
response.send(ejs.render(data, {
data : results
}));
});
});
});
|
- 해결방법
설치된 Express의 버젼(4.x)에 맞게 router 코딩을 한다.
;
|
이 글은 Evernote에서 작성되었습니다. Evernote는 하나의 업무 공간입니다. Evernote를 다운로드하세요. |
댓글 없음:
댓글 쓰기