Skip to content

structure of express.js

file structure#

.
├── app.js
├── package-lock.json
├── package.json
├── node_modules
│   └── ...
└── routes
    └── goods.js
  • app.js main 루틴이 들어있는 곳. 다른 모듈을 임포트(require)하여 URL을 라우팅 할 수 있다.
  • package-lock.json 설치된 패키지 메타데이터들을 저장한 파일, 이 파일만 있으면 다른 개발자도 같은 패키지 설정을 공유할 수 있다.
  • package.json 패키지 메타데이터를 정의한 파일.
  • node_modules npm을 통해 패키지 의존성들이 들어있는 디렉토리
  • routes 내가 임의로 생성한 디렉토리. 하위 모듈들을 담는 디렉토리.

app.js#

express 객체와 다른 모듈들을 임포트

  • [?] 그런데, require도 임포트인데, import를 쓰지 않는 이유가 뭘까?
const express = require("express");
const goodsRouter = require("./routes/goods");

express app 실행 및 listening

const app = express();

app.listen(port, () => {
  console.log(port, "포트로 서버가 열렸어요! ♥️");
});

라우팅

https://expressjs.com/en/starter/basic-routing.html 참조

app.get("/", (_req, res) => {
  res.send("Hello, World!");
});

타 모듈(middleware {expressjs})를 app에 등록시키는 과정

https://expressjs.com/en/starter/static-files.html 참조

app.use(express.json());
app.use("api/", [goodsRouter]);

routes/goods.js module#

라우터 미들웨어를 사용하기 위해 객체를 받아오는 코드

const router = express.Router();

라우터 export를 해야 타 모듈에서 볼 수 있다.

module.exports = router;