iT邦幫忙

2026 iThome 鐵人賽

DAY 21
0

接續前面的介紹~

4.模組化、require、Service 層
後端不會把所有程式都塞在:server.js

而是拆成不同責任。
例如:

project/
│
├── server.js
├── routes/
│   └── userRoute.js
│
├── services/
│   └── userService.js
│
└── data/
    └── users.json

假設 userService.js:

function getUser() {
  return {
    id: 1,
    name: "SS C"
  };
}

module.exports = {
  getUser
};

其他檔案就可以:

const userService = require("./services/userService");

const user = userService.getUser();

console.log(user);

這就是:

module.exports
     ↓
把東西輸出

require()
     ↓
把其他模組拿進來使用

Service 又是什麼?
Service 可以先理解成:負責處理「業務邏輯」的地方。

例如「取得使用者資料」可能不是單純讀資料而已:

async function getUser(id) {
  const user = await findUser(id);

  if (!user) {
    throw new Error("User not found");
  }

  return user;
}

所以常會形成:

Request
   ↓
Route / Controller
   ↓
Service
   ↓
Database / File / API

總結所以後端 JavaScript 的世界觀
大概會是這樣的架構

                Browser
JavaScript ───────┤
                  │
                  └──── Node.js
                           │
                           ↓
                        Server
                           │
               ┌───────────┼───────────┐
               ↓           ↓           ↓
           模組化       process.env    非同步 I/O
               ↓           ↓           ↓
            require     環境設定    fs/promises
               ↓                       ↓
            Service                 Promise
               ↓                       ↓
           業務邏輯                async/await

Node.js 是在學:
「JS 如何在 Server 上接 Request、執行業務邏輯、讀取資料,再回 Response?」


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

尚未有邦友留言

立即登入留言