🤗

時代はDeno、node_modulesとおさらばだ、Denoでexpressサーバーを立ち上げる

2022/10/29に公開

最近Denoの開発スピードが早くなっていて、次々と更新されている、新しいランタイムBunが出てきたことの影響か、HTTPサーバーのスピード改善やNPMパッケージをネイティブで対応するなど、次々と発表されている。

npmパッケージはまだ完全に対応しきれてないみたいだが、expressがdenoで動くということをDeno Blogに書かれていたので、早速試してみたが、かなり良かった。

Denoのインストール

denoは何より開発体験が抜群にいいところが自分的にとても魅力的に感じる。
unix系のシステムであれば👇をターミナルで実行して環境変数設定するだけ


curl -fsSL https://deno.land/install.sh | sh

因みにbrewも対応している、詳しくは👇
https://deno.land/#installation

実行したら👇が出るので、指示通り環境変数を.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