🐡

Node.js + TypeScript + Express の最小構成でHelloWorldする

2023/03/12に公開1

バージョン情報

name version
node 18.15.0
npm 9.6.1
ts-node 10.9.1
name version
express 4.18.2
typescript 4.9.5

Expressを導入

公式のインストール手順に従い構築
https://expressjs.com/ja/starter/installing.html

$ mkdir myapp
$ cd myapp

gitignore作成(node_moduleをリポジトリに入れたくないので)

$ touch .gitignore
.gitignore
node_modules/
$ npm init

すべてデフォルトの値を利用

$ npm install express

index.js を作成

$ touch index.js
index.js
const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => {
  res.send('Hello World!')
})

app.listen(port, () => {
  console.log(`Example app listening on port ${port}`)
})

実行確認

$ node index.js

http://localhost:3000/で表示確認

TypeScript化する

$ npm install -D typescript @types/node
$ npx tsc --init

この状態だと .ts のファイルがなくてエラーになるので index.js => index.ts に拡張子を変更して下記のように修正

index.ts
import express from 'express'
const app: express.Express = express()
const port = 3000

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

app.listen(port, () => {
  console.log(`Example app listening on port ${port}`)
})

express の型定義がないので導入

$ npm install -D @types/express

そのままでは実行できないので ts-node を導入

$ npm install -D ts-node

再度起動できるか確認

$ npx ts-node index.ts

http://localhost:3000/で表示確認

Discussion

katayama8000katayama8000

有益な記事ありがとうございます!
参考にさせていただきました。

npx経由で実行する場合

$ npm install -D ts-node

はいらないと思います。