iT邦幫忙

2024 iThome 鐵人賽

DAY 11
0

什麼是後端?

後端 是指應用程式在伺服器端運行的部分,負責處理數據、業務邏輯及與資料庫、外部系統的互動。後端包括伺服器、資料庫及應用程式邏輯,使用者無法直接看到或接觸後端,但它是支撐整個應用程式運作的關鍵。

APP 為什麼需要後端?

  1. 資料存取與同步:APP 需要存取和同步數據,這些數據通常儲存在後端資料庫中,例如用戶帳號、訂單資訊等。
  2. 用戶驗證與授權:後端負責處理用戶的登入、註冊、權限管理,並確保數據的安全性。
  3. 業務邏輯:後端負責應用的業務邏輯,例如計算、數據處理、文件生成等。

後端扮演的角色

  1. 資料儲存與檢索:透過後端的資料庫,應用可以安全儲存和檢索資料,例如用戶資訊、交易記錄等。
  2. 處理業務邏輯:後端處理如資料分析、交易處理、報告生成等,確保應用符合業務需求。
  3. 與前端互動:後端接收前端的請求,處理數據並回傳結果,保持前後端的資料一致。

總結來說,後端是支撐 APP 資料管理和業務邏輯的核心部分,為應用提供安全、穩定的運行環境。

常見的後端框架介紹

以下是幾個常見的後端框架及其特色:

框架 語言 特色 應用場景
Nest.js TypeScript 模組化、微服務支援、TypeScript 支援強大 企業應用、微服務、RESTful API
Express.js JavaScript 簡單、靈活,適合小型專案,但缺乏結構 小型應用、快速 prototyping
Spring Boot Java 完整解決方案,內建多種企業級工具與安全性 企業級應用、微服務
Django Python 自帶 ORM 和管理後台,開發快速 全棧應用、CMS、快速開發
Flask Python 輕量,適合簡單應用與 API 開發 小型 API、輕量應用
Ruby on Rails Ruby 自帶很多開箱即用的功能,適合快速開發 初創專案、MVP

介紹 Nest.js

Nest.js 是一個進階的 Node.js 框架,專門用來構建可擴展的伺服器端應用程式。它基於 TypeScript 並使用 Express.js 或 Fastify 作為底層 HTTP 伺服器。Nest.js 的核心特色是其模組化架構和強大的 DI (Dependency Injection) 系統,適合構建企業級應用,並且支援 MVC (Model-View-Controller) 模式和微服務架構。

Nest.js 的核心特色:

  1. 模組化結構:將應用拆分成獨立模組,方便維護和擴展。
  2. TypeScript 原生支援:Nest.js 完全使用 TypeScript,並強調型別安全和自動補全。
  3. 強大的 DI 系統:讓元件之間的依賴更加清晰和可管理。
  4. 微服務支援:內建支援 microservices,適合構建分散式系統。

Nest.js 安裝與啟動範例

  1. 安裝 Nest.js CLI
npm i -g @nestjs/cli

或是

yarn global add @nestjs/cli
  1. 創建新專案
nest new project-name

一開始會問你是用npm或是 yarn,我這邊是使用 yarn

 tomj@zhuangyayis-MacBook-Pro  ~/Documents/project  nest new test123
⚡  We will scaffold your app in a few seconds..

? Which package manager would you ❤️  to use? yarn
CREATE test123/.eslintrc.js (663 bytes)
CREATE test123/.prettierrc (51 bytes)
CREATE test123/README.md (4376 bytes)
CREATE test123/nest-cli.json (171 bytes)
CREATE test123/package.json (1946 bytes)
CREATE test123/tsconfig.build.json (97 bytes)
CREATE test123/tsconfig.json (546 bytes)
CREATE test123/src/app.controller.ts (274 bytes)
CREATE test123/src/app.module.ts (249 bytes)
CREATE test123/src/app.service.ts (142 bytes)
CREATE test123/src/main.ts (208 bytes)
CREATE test123/src/app.controller.spec.ts (617 bytes)
CREATE test123/test/jest-e2e.json (183 bytes)
CREATE test123/test/app.e2e-spec.ts (630 bytes)

✔ Installation in progress... ☕

🚀  Successfully created project test123
👉  Get started with the following commands:

$ cd test123
$ yarn run start


                          Thanks for installing Nest 🙏
                 Please consider donating to our open collective
                        to help us maintain this package.


               🍷  Donate: https://opencollective.com/nest

安裝完會顯示畫面。上面畫面

  1. 啟動伺服器
 yarn start:dev

接著會看到下面畫面,表示已經完成。

 tomj@zhuangyayis-MacBook-Pro  ~/Documents/project/test123   master  yarn ru
n start
yarn run v1.22.19
$ nest start
[Nest] 69397  - 2024/09/25 下午4:49:16     LOG [NestFactory] Starting Nest application...
[Nest] 69397  - 2024/09/25 下午4:49:16     LOG [InstanceLoader] AppModule dependencies initialized +6ms
[Nest] 69397  - 2024/09/25 下午4:49:16     LOG [RoutesResolver] AppController {/}: +2ms
[Nest] 69397  - 2024/09/25 下午4:49:16     LOG [RouterExplorer] Mapped {/, GET} route +1ms
[Nest] 69397  - 2024/09/25 下午4:49:16     LOG [NestApplication] Nest application successfully started +1ms


  1. 瀏覽器查看: 在瀏覽器中打開 http://localhost:3000,就能看到基本的 Nest.js 頁面。

結語

我們今天簡單的開始Nest.js。明天我們會教大家簡單的概念還有CRUD。今天Tom先去唱歌了。


上一篇
[Day10] 使用UI庫打造註冊、登入與首頁
下一篇
[Day12] API 與 CRUD 概念:後端開發的基本功
系列文
30天 使用chatGPT輔助學習APP完成接案任務委託30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言