npm init,npm install express --save

express 라는 폴더를 만들고 터미널에서 해당 디렉토리로 들어가, npm init을 입력한다.
입력하면 package.json 파일이 생기고,
이제 node 기반의 webserver Express 설치하자.
npm install express --save 를 터미널에 입력,
package.json의 내용에 epxress가 추가 되었고, node modules라는 디렉토리도 생겼다.

Express 기반 웹서버 구동
var express = require('express')
// require을 통해 express 내부의 함수를 불러온다고 일단은 생각하고 넘어가자
var app = express()
// 가지고온 express를 실행해 app이라는 변수 안에 담는다.
app.listen(3000, function() {
console.log("start! express server on port 3000");
});
// listen 이라는 함수가 실행되었고, 3000이라는 포트 기반으로 이 함수를 실행한다.
터미널에서 node app.js를 입력해 실행해보자.

성공적으로 콘솔에 찍혔으니 이제 localhost:3000으로 접속이 가능하다.

지금은 요청에 대한 처리를 해두지 않아 에러가 난다.
app.js 의 코드 마지막줄인걸 알려주는 로그를 하나 작성하자
console.log('end of server code...')
다시 app.js를 실행 해보면
생각으론 start! 로그가 찍히고, end of server가 찍혀야 한다.
결과를 보면?

end of server code가 먼저 찍히고 start가 찍혔다.
왜일까?
비동기로 동작되기 때문이다.
서버가 동작 될 때 까지 기다리는 것이 아니고 콜백 함수들은 모두 비동기로 동작된다.
즉, listen안에 있는 함수 (콜백 함수)는 비동기로 처리 된다.
nodemon
npm install nodemon -g
eclipse에서 tomcat을 이용해 서버를 띄우면 java파일이 변경 된 경우 자동으로 서버를 내렸다 올리는데, 지금까지 수정하고 서버를 내리고 다시 app.js를 실행해 서버를 올렸지만 nodemon을 이용하면 수정된걸 감지해 자동으로 해준다.
(-g를 붙여 글로벌로 사용할 수 있도록 모든 pc 어떤 디렉토리에서든지 사용할 수 있도록)
이제 실행할 때 nodemon을 이용해 실행하면 된다.

수정 후 바로 콘솔이 찍힌걸 볼 수 있다.