본문 바로가기
Coding/server

Server - node - express -typescript

by z쿳쿳z 2021. 9. 5.
728x90
반응형

typescript로 node환경에서 express server를 만들어 보았다. 

npm init

command line에 npm init을 하게되면 app_name, author, version...등등을 입력을 할 수 있다. npm init 뒤에 -y 옵션을 주면 입력을 하지않고 기본적으로 package.json을 만들수 있다.

이렇게 npm init을 하고 package.json을 만들고 필요한 라이브러리 들을 설치할 수 있다.

 

기본적으로 필요한 express와 typescript를 설치를한다.

npm i typescript express @types/express ts-node

그리고 나서 tsconfig.json을 설정해서 type이 적용할 수 있도록 한다.(최상위 디렉토리에)

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

es6에 익숙하신 분들은 module을 불러올 때 import 형식이 편할것이라고 생각한다.

//ES5
const express = require('express')

//ES6
import express from 'express'

그래서 import로 module을 불러 오려면 tsconfig.json 파일 compilerOptions 안에 아래와 같은 옵션을 추가를 하면 모듈을 불러올때 import로 불러올 수 있다.

 "esModuleInterop": true

 

server에 코드를 수정해줄 때마다 sever를 켯다껏다 하는 번거로움을 없애기 위해 nodemon을 설치를 하고 package.json에 npm으로 실행 되겠끔 셋팅을 한다.

npm i nodemon
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "nodemon server.ts"
  },

command line에서 npm start를 하면 sever.ts라는 파일을 node 환경에서 실행할 수 있다.

 

//server.ts
//const express = require('express') // "esModuleInterop": true 옵션이 없을 때
//import express from 'express' // "esModuleInterop": true 옵션이 있을 때

import express, {Request, Response} from 'express'

const app = express();

const PORT = 8000

app.get('/', (req: Request, res: Response)=>{
  res.status(200).send('hello world')
}

app.listen(PORT, () => {
  console.log(`server start localhost: ${PORT}!!!!!!!!`)
})

npm start를 하면 console이 찍힌다. 그리고 localhost:8000 에 접속을 해보면 Hello world를 확인가능.

 

 

728x90
반응형

'Coding > server' 카테고리의 다른 글

Server - mediasoup 설치 error  (0) 2022.01.05
Server - login-server-tutorial  (0) 2021.12.05
Server - express  (0) 2020.11.14
Server - 만들기  (0) 2020.08.04