ゴールデンウイーク後半ということもあり、仕事に向けてゆっくり勉強でもしようという今日です。結構ブログネタがたまってきたので、少しずつアウトプットしていこうと思います!前回はTypescript の型定義に関して簡単にまとめてみましたが、今回は実行環境を用意していきましょう。
今回やること
今回のブログで書いていくことは、Typescript をバックエンドで実行する環境を整えることです。
なので、WSL2 上でDB を用意して、CRUD の処理ができるところをゴールとしたいなと思います。
ただ、CRUD の処理を書くところまでは書いているとかなりの長さになってしまうので、処理については別の記事で書きたいと思います。
実行環境について
今回は以下のような実行環境を整えていこうと思います。
- WSL2
- Node Js (Volta でバージョンを管理)
- v18.20.5
- Mongodb
- 6.0.23
- POSTMAN などのAPI ツール(Curl で代用可能)
- Node Js (Volta でバージョンを管理)
まずは、Mongodb をWSL2 にインストールするところから書いていきましょう。Node JS のインストールとVolta のインストールはこちらの記事を参考にしてみてください。

それでは、MongoDB のインストールからかいていきます!
MongoDB の環境を整える
基本的には、公式通りにインストールしていきますので、公式を参照いただいても大丈夫です。
# GPG key import
curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg \
--dearmor
# リストファイルの作成
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
# パッケージ update
apt update
(※ここでupdate でのエラーが表示された場合、GPG key の設定がうまくいってない可能性があります)
#MongoDB サーバー インストール
apt install mongodb-org
# 起動
systemctl start mongod
=> 起動状態になるとオッケーです
僕の環境ではこのセットで6.0 系統がインストールすることができました!最初にバージョンを間違えていれてしまい、GPG key のエラーが発生したりなどがありましたが、それ以外は特にエラーがなかったので、割とすんなりインストールできるのではないかと思います。
ただ、インストールすると、MySQL などはデフォルトでパスワード認証になっているのですが、
MongoDB はパスワードなしでログインができてしまいますので、パスワードの設定だけ最初にすすめておきましょう。
MongoDB の初期設定
mongoDB の初期設定をしていきましょう。MongoDB のconf ファイルは/etc/mongod.conf として存在しています。そのファイルでパスワード認証の設定をしていきます
#mongodb にログイン
mongosh
# admin db にswitch
use admin
# user 作成
db.createUser(
{
user: "tansan",
pwd: "password",
roles: [ { role: "userAdminAnyDatabase", db: "admin" },
{ role: "dbAdminAnyDatabase", db: "admin" },
{ role: "readWriteAnyDatabase", db: "admin" }
]
}
)
=> { ok: 1 }
//エラーなく作成されていたら、大丈夫です
# conf 編集
nano /etc/mongod.conf
# security をコメントアウトはずして、auth の設定追加
security:
authorization: enabled
#再起動
systemctl restart mongod
# mongosh でパスワード認証設定が有効か確認
mongosh
show tables;
=> MongoServerError[Unauthorized]: command listDatabases requires authentication
authentication のエラーが発生したら、パスワード認証が有効になっている
# mongosh + password 認証でログイン
mongosh mongodb://tansan@localhost:27017/
password:*******
# show databases
test> show databases;
admin 132.00 KiB
config 60.00 KiB
local 72.00 KiB
=> コマンドがauth エラーなく通ったら想定通り
MongoDB の初期設定はここまでになります。これでパスワード認証を通してのみアクセスが可能な状態を作成できたので、セキュリティが向上しました!!最後にTypescript がバックエンドで使えるように準備をしていきましょう!
Typescript の準備
Typescript の準備と言っても、react create project などはせずに、package.json などをインストールして、Typescript で記載したものが使えるように、tsc をインストールするのみになります。
# package json 作成
npm init
# ts ファイル作成
touch index.ts
# typescript とts-node インストール
npm install -g typescript ts-node
# index.ts にテストコード
let test: string = "test"
console.log(test);
# tsc でコンパイル
tsc index.ts
=> index.js ファイルが作成される
# 実行
node index.js
=> test
// console log の中身が表示されたらオッケー!
この時点でnode js を使って、typescript でバックエンドを書く準備はできました。
まとめ
めっちゃ中途半端ですが、この辺でtypescript が使える環境とデータベースの準備ができましたので、今回はこれにて終わろうとは思いますが、次はexpress を使って、サーバーの機能も持たせて、api 通信でCRUD の処理について書いていこうと思っているので、処理については次の記事を乞うご期待ください!