Express 서버 만들기 Application
개발의 존성을 위한 nodemon
npm i nodemon --save-dev
현재 개발 computer에서는 nodemon이 global로 설치가 되었지만, 프로젝트를 다른 개발자와 공유했을 때 그 개발자의 computer에는 nodemon이 없을 수도 있으므로 위 터미널 명령어로 개발자 mode에서는 nodemon이 필요하다는 것을 명시해준다.
그 뒤에 package.json에 들어가면 "devDepsendencies"에 nodemon이 추가 된 것을 확인 할 수 잇다.
초간단 server 구축하기
import express from "express";
const app = express();
app.listen(8080);
computer에는 IP가 있고 여러개의 port가 있다. 그 port중에 관심이 있는 어플리케이션을 listen하고 또 접속할 수 있다.
*IP : server가 어디있는지 알 수 있다.
*Port : 그 server에 어떤 application에 접속할 수 있는지를 나타낸다.
Server 동작확인
브라우저를 통해 해당 url에 접속해보면 다음과 같은 화면을 확인할 수 있다. 즉 아직 처리하는 것은 없지만 application server가 정상적으로 동작하는 것을 확인할 수 있다.
이제 server가 가동되는 상태에서 원하는 middleware 즉 callback함수를 원하는 경로(URL)이면서, 원하는 메서드에 등록해주면 된다.
모든 메서드에 대해서 듣고 싶다면 app.use()혹은 app.all()을 사용하면 된다. 이 두개는 비슷한데 살짝 차이가 존재한다.
root 경로 등록하기
import express from "express";
const app = express();
app.get("/", (req, res, next) => {
console.log("get");
});
app.listen(8080);
우선 get()메서드로 root경로에 listen하고 싶은 callback함수를 등록하면 되는데, 인자로는 req,res,next가 있다.
app에서 할 수 있는 것
import express from "express";
const app = express();
app.get("/", (req, res, next) => {
console.log("get");
});
app.listen(8080);
app에서 원하는 특정한 HTTP 메소드에 대해서 listen할 수 있고, 또 해당 메소드에 매치될 URL를 지정할 수 있고, middleware인 callbakc함수를 등록할 수 있다.
그리고 전달되는 request를 통해서 요청에 대한 정보를 확인한 다음에 response를 통해서 client에게 data를 전달 해주면 된다.
Application을 통해서 처리할 수 있는 메서드(HTTP)
app.all()
app.all(path,callbak[,callback.....])
all()은 말 그대로 HTTP 모든 메서드에 대해서 listen하고, 처리하고 싶을 때 사용할 수 있다.
app.enable(name)
app.enable('trust proxy')
app.get('trust proxy')
// => true
app.enabled(name)
app.enabled('trust proxy')
// => false
app.enable('trust proxy')
app.enabled('trust proxy')
// => true
app.use()
app.use([path],callbak[,callback....])
app.use()와 app.all()은 어떤 HTTP 요청에든 상관없이 지정한 경로나 또는 경로(URL)를 지정하지 않으면, 모든 경로(URL)에 대해서 원하는 callback함수를 수행해준다.
use()와 all()은 비슷하지만 살짝 다르다.
[출처 -https://academy.dream-coding.com/courses/node ]