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 |