iT邦幫忙

2026 iThome 鐵人賽

DAY 20
0

今天延續上一篇繼續講下去~

2.process.env:環境變數

有些東西不適合直接寫死像是:

const password = "123456";
const apiKey = "abc123";

通常會放到環境變數,

例如 .env:

PORT=3000
DB_HOST=localhost
DB_PASSWORD=123456

程式則透過以下取得:

process.env.PORT
process.env.DB_HOST
process.env.DB_PASSWORD

概念就是:

.env / 系統環境變數
        ↓
   process.env
        ↓
    Node.js 程式

像是可以這樣設計:

開發環境
DB_HOST=localhost

正式環境
DB_HOST=production-db

程式碼不用改,只需要換環境設定,這樣設計起來也方便管理維護。

3.Node 單線程 + fs/promises

Node.js 執行 JavaScript 時,核心概念可以先理解成:JavaScript 主執行緒一次處理一件事情。

假設讀一個超大的檔案,如果使用同步版本:

const fs = require("fs");

const data = fs.readFileSync("./users.json", "utf8");

console.log(data);

可以想像成:

開始讀 users.json
      ↓
主程式:等……
      ↓
主程式:還在等……
      ↓
讀取完成
      ↓
繼續執行

這叫 Blocking(阻塞)。

如果是 Callback 版本,Node.js 可以改成:

const fs = require("fs");

fs.readFile("./users.json", "utf8", (err, data) => {
  if (err) {
    console.log(err);
    return;
  }

  console.log(data);
});

console.log("繼續做其他事情");

這時候:

開始讀檔
  ↓
不用等
  ↓
繼續執行其他程式
  ↓
檔案讀好了
  ↓
callback 執行

這就是非同步(Asynchronous)。


上一篇
Day 19 - Node.js 內建模組概念 -2
下一篇
Day 21 - Node.js 內建模組概念 -4
系列文
在AI 時代的碰撞下~當前端工程師開始碰上後端又到了雲服務的旅程 共 24 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言