1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

.envを使いたい!ー備忘録ー

1
Last updated at Posted at 2025-12-13

はじめに

開発をしている中で、「あ、これ知らなかったな」ということに遭遇することがあります。
今回はその一つについて、備忘録も兼ねてアウトプットとしてまとめておきます。

.env が使えない

よし、ポート番号は .env に入れて...

.env
PORT=4000

それを取得するようにして...
(適当な記事を チラ見して )

server.js
const PUBLIC_PORT = Number(process.env.PORT || 8080);

...

publicServer.listen(PUBLIC_PORT, () => {
  console.log(`Public site at http://localhost:${PUBLIC_PORT}`);
});

できた!実行だ!

$ npm start

> server_test@0.1.0 start
> node server.js

Public site at http://localhost:8080

あれ?デフォルト値になってしまっている?

原因

調べてみたら、 Node.js.env ファイルを自動では読み込まないそうです。
JavaScript だから、というわけではなく、他の言語でもそうらしいです。
これまで人のコードを改造したり、そのまま使うことが多かったため、「環境変数は勝手に読み込まれるもの」と思い込んでいました。
今まではハードで最初に直書きするという酷いコードでしたから...
基礎を怠るとこんな場所で影響するとは...

解決

ということで、 Node.js では dotenv を使って読み込みましょう。
dotenv をインストールして、先ほどのコードを以下のように変えます。

npm install dotenv
server.js
#!/usr/bin/env node
import 'dotenv/config';

const PUBLIC_PORT = Number(process.env.PORT || 8080);

publicServer.listen(PUBLIC_PORT, () => {
  console.log(`Public site at http://localhost:${PUBLIC_PORT}`);
});

結果として上手く動くようになります。

$ npm start

> server_test@0.1.0 start
> node server.js

Public site at http://localhost:4000

まとめ (学んだこと)

.env は自動で読み込まれない。
読み込むやつ(dotenv、dotenvx、python-dotenv等)を導入してから使用する。
基礎を怠らない。
記事は最初から最後まで真面目に読む。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?