기타/백엔드

nodejs api 예제 : express

에잇콘텐츠 2021. 3. 27. 16:31

- hello를 반환하는 express 를 사용한 nodejs 백엔드 api 예제 입니다.

 

1. nodejs 설치

nodejs.org/ko/download/

 

다운로드 | Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

2. 예제 소스코드 다운로드

github.com/vipick/nodejs-example

 

vipick/nodejs-example

Contribute to vipick/nodejs-example development by creating an account on GitHub.

github.com

- 소스코드 주요 폴더 및 파일 

app/controllers/hello.controllers.js 컨트롤러
app/routes/index.js 라우터
.gitignore git 으로 관리하지 않는 파일/폴더를 지정
app.js 메인 
server.js app.js 를 실행
package.json 외부 프로그램 버전 관리

 

3. package.json 설치 (npm install)

- 다른 사람들이 만들어 놓은 프로그램에 대한 버전 관리를 하는 파일입니다. 

- 이 예제에서는 express, morgan, nodemon 등 을 사용하고 있습니다.

- npm install 명령어 시 package.json 의 dependencies에 작성된 외부 프로그램 버전이 node_modules 폴더에 설치됩니다.   

- node_modules 을 용량이 커서 git으로 버전관리 하지 않기 때문에 .gitignore에 포함시킵니다.

 

 

4. 개발 환경 실행 (npm run dev)

- 실행 명령어는 package.json 파일 내부에서 scripts/dev 에 정의 되어 있습니다.

- 먼저 server.js 가 실행되고, 그 다음 app.js 를 실행하고 app/routes/index.js (라우터)를 불러옵니다.

- 라우터에는 api 호출 방법이 적혀있고, 실제 기능은 helloContrller의 getHello 함수에 있습니다.

 

4-1) app/routes/index.js

module.exports = function (app) {
  const helloController = require("../controllers/hello.controller.js");

  app.get("/hello", helloController.getHello);
};

4-2) app/controllers/hello.controller.js

exports.getHello = async (req, res) => {
  return res.status(200).json({
    description: "hello 가져오기 성공!",
    content: "hello",
  });
};
 

 

5. API 실행 (http://localhost:8001/hello) 

- 브라우저에서 위의 URL를 실행시키면, hello 반환 값를 가져오는 것을 확인 할 수 있습니다.