본문 바로가기
Front

[node.js] Java에서 Spring boot와 비슷한 흐름의 Express-generator에 대해서 / router를 통해서 url 맵핑에 대해서 / nodejs 메일보내기

by bkuk 2023. 2. 1.

Java에서 Spring Boot와 비슷하게 nodejs에서도 프로젝트를 바로 진행할 수 있는 템플릿을 제공한다.

이를 express-generator라고 한다.

사용하기 위해서는 아래와 같은 코드를 입력한다.

 

express-generator를 글로벌하게 설치하는 내용이다.

sudo npm install express-generator -g

 

설치가 되었는지 확인해보자.

npm list -g

 

 

이제 템플릿을 생성해보자.

myapp 이라는 단어를 프로젝트 명이라고 생각하고, 입력할 때는 바꿔주자.

express --view=ejs myapp

 

 

설치하고 난 뒤에는 node_modules 라는 폴더가 없는데, 생성 후 모듈을 가져오는 작업을 해줘야한다.

모듈까지 올리지 않는 이유는 파일의 크기가 워낙 크다보니 사용자가 직접 설치를 하라는 의도이다.

따라서 아래와 같은 코드를 통해 설치해보자.

npm install

 

이 패키지안에서는 자바에서 봤던 public static과 동일하게 전역으로 사용할 수 있는 폴더는 package.json 이고, script: {} 안에 명시해주면 된다.

 

bin 폴더 안에 www 파일을 통해서 포트번호 등을 설정할 수 있다.

server.listen( port ) 를 통해서 무슨 포트 번호를 listen 하겠다는 메서드를 통해서 설정하면 된다.

 

이제 app.js 를 보자.

view engine setup을 확인할 수 있는데, views 폴더를 가르키고 있다. 이는 app.set을 통해서 설정할 수 있다.

아래 캡쳐화면을 참고하자.

 

 

라우터를 통해서 어떤 요청에 따라서 어떤 페이지를 보여줄 것인지 설정할 수 있다.

라우터에서는 어떤 방식으로 사용자에게 응답할 것인지에 대해서 설정할 수 있는 그 메서드는 res.render와 res.send(end)이다.

 

Java에서 Spring boot에서는 어노테이션으로 @Controller와 @RestController를 사용했는데 아래 문장을 이해해보자.

@Controller는 template.. 즉, html을 불러서 응답하겠다는 의미이다. 이는 node.js에서 res.render와 같다.

@RestController는 String으로 출력하겠다는 의미이다. node.js에서 res.send(end)와 같다.

여기서 Rest라는 의미는 REST full와 같은 의미로 해석된다. 전해듣기론 json 형태로 데이터를 보낼 때 Rest full 이라는 단어를 사용한다고 한다.

 

이제 라우터 폴더에서 gugudan.js를 생성해서 router.get을 설정한 후 res.send 메서드를 통해서 String을 출력할 수 있게끔 설정했다.

위에서 설정한 후 app.js에서 require 메서드를 통해서 위에서 작성한 라우터 폴더안에 js 파일을 등록해줘야 한다.

등록한 후 app.use 메서드를 통해서 어떤 url에 요청이 있을 때, 무엇을 보여줄 것인지 설정할 수 있다.

 

20230201_nodejs.zip
1.55MB

 

 

 

댓글