🤗
時代はDeno、node_modulesとおさらばだ、Denoでexpressサーバーを立ち上げる
最近Denoの開発スピードが早くなっていて、次々と更新されている、新しいランタイムBunが出てきたことの影響か、HTTPサーバーのスピード改善やNPMパッケージをネイティブで対応するなど、次々と発表されている。
npmパッケージはまだ完全に対応しきれてないみたいだが、expressがdenoで動くということをDeno Blogに書かれていたので、早速試してみたが、かなり良かった。
Denoのインストール
denoは何より開発体験が抜群にいいところが自分的にとても魅力的に感じる。
unix系のシステムであれば👇をターミナルで実行して環境変数設定するだけ
curl -fsSL https://deno.land/install.sh | sh
因みにbrewも対応している、詳しくは👇
実行したら👇が出るので、指示通り環境変数を.zshrc
なり.bashrc
なりに追記して、ターミナル再起動する
######################################################################## 100.0%
Archive: /Users/user/.deno/bin/deno.zip
inflating: /Users/user/.deno/bin/deno
Deno was installed successfully to /Users/user/.deno/bin/deno
Manually add the directory to your $HOME/.zshrc (or similar)
export DENO_INSTALL="/Users/user/.deno"
export PATH="$DENO_INSTALL/bin:$PATH"
npmインストール不要
nodeの場合はpackage.jsonを作り、typescriptをインストールし、ts-nodeをインストールして、tsconfig.jsonに設定を書いて...etc
の事前作業が必要ですが、denoの場合は好きなディレクトリにserver.ts
ファイルを作って、deno run server.ts
を実行するだけ
express使ってみる
server.ts
// @deno-types="npm:@types/express" 👈タイプ情報
import express from "npm:express@4";
const app = express();
app.get("/", (req, res) => {
res.send("Hello World!");
});
app.listen(3000, () => {
console.log("Server running on port 3000");
});
あとは実行するだけdeno run --allow-net --allow-env --allow-read --allow-ffi --unstable server.ts
denoはデフォルトでのセキュアさを売りにしているので、色々許可しないとコードが実行されない。
Discussion