Node | Node Express 로 서버 만들기!

DoItDev·2021년 4월 30일
0
post-thumbnail

👂 들어가기 앞서서

간단한 예제를 만들고 싶어서 서버 하나가 필요하였다.
하지만 스프링 으로 하기에는 볼륨이 크고 디-장고 으로 만들자니 익숙하지 않아서
node express 만들기로 하였다.
이 서버의 경우 typescript 기반으로 하며 일단은 도커로 빌드 하려고 한다.

🤘 Node Express Start ~

처음으로 해야되는 것은 프로젝트에 npm 을 주입 시켜 주어야 된다.
npm 기반으로 만들기는 하지만 yum 으로도 가능이 하다.
일단 필자는 npm 이 익숙하기에 npm 으로 만들 생각 이다.

npm init
스크린샷 2021-04-30 오후 10 29 27

npm 으로 타입 스크립트 , 노드 , nodemon 을 주입 시켜준다
nodemon 은 코드나 변경사항이 있을시 자동으로 주입해준다.

npm install @types/express @types/node nodemon ts-node typescript -- dev
스크린샷 2021-04-30 오후 10 29 43

중요한 express 를 설치를 해준다.

npm install express
스크린샷 2021-04-30 오후 10 30 06

타입 스크립트 설정파일을 주입 시켜준다.
알아서 자동으로 설정파일이 만들어진다.
간단하게 주석으로 파일이 만들어지는데 필요한 것만 설정을 해준다.
나머지 부분은 주석 그대로 놔두되고 지워도 무방하다.

npx tsc --init
스크린샷 2021-04-30 오후 10 44 11

기본 폴더 구조
스크린샷 2021-04-30 오후 10 47 19

tsconfig.js

{
  "compilerOptions": {
    "lib": [
      "es5",
      "es6"
    ],
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "outDir": "./build",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "sourceMap": true,
    "strict": true,
    "esModuleInterop": true,
    "skipLibCheck": true,
    "forceConsistentCasingInFileNames": true
  }
}

개발기
"debug" : "nodemon --exec ./node_modules/.bin/ts-node ./src/app.ts"

운영기
"start": "tsc && nodemon --exec node ./build/app.js",

package.json

{
  "name": "node_application",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "debug" : "nodemon --exec ./node_modules/.bin/ts-node ./src/app.ts",
    "start": "tsc && nodemon --exec node ./build/app.js",
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "repository": {
    "type": "git",
    "url": "git+https://github.com/Gon-Zo/Node_Application.git"
  },
  "author": "",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/Gon-Zo/Node_Application/issues"
  },
  "homepage": "https://github.com/Gon-Zo/Node_Application#readme",
  "dependencies": {
    "@types/express": "^4.17.11",
    "@types/node": "^15.0.1",
    "express": "^4.17.1",
    "nodemon": "^2.0.7",
    "ts-node": "^9.1.1",
    "typescript": "^4.2.4"
  }
}

일단은 로컬에서 연결을 서버를 올리는 것이기 때문에 디버그 명령어를 써서 올렸다.
위에 개발기 라고 명령어가 적혀있는것을 사용하면된다.

스크린샷 2021-04-30 오후 10 41 46

⚠️ 참고용 ./src/app.ts

import express from "express";
class App {
    public application: express.Application;
    constructor() {
        this.application = express();
    }
}
const app = new App().application;
app.get("/", (req: express.Request, res: express.Response) => {
    res.send("start");
})
app.listen(4000, () => console.log("start"));

이렇게 서버가 올라갔다

스크린샷 2021-04-30 오후 10 50 45

🤨 마치며 ...

오늘은 타입스크립트를 이용하여 서버를 만들었다..
타입스크립트와 도커를 이용할 계획인데 잘 만들 수 있을 지 ..
타입스크립트의 가 강력하게 매력적으로 다가와서 일할때는 스프링을 많이 사용하는데
클라이언트 언어로 타입스크립트를 사용하는데 서버로 한번 만들어 보고 싶어서 사용해보는
중이다.
아직 그렇다할 장.단 점을 찾진 못하였다. 그래도 이렇게 간단하게 한다는게 가장 큰 장점인 거 같다.
이상!! 👊

profile
Back-End Engineer

0개의 댓글