2023年1月16日 星期一

AdonisJs第四天Controller

前言

一個不小心就休了十天,打這系列文章讓我真心佩服那些挑戰it鐵人賽的人,每天一篇文張看來真的不是開完笑的累。


建立控制器

可以使用指令`node ace make:controller [controller_name]`來新增controller,也可以手動新增檔案。

方法中第一個參數預設會帶入context,內容幾乎涵蓋網站開發的重要物件

  • request: 封裝了請求對象,包含了請求頭,請求參數,請求體等信息。

  • response: 封裝了回應對象,用於提供回應的方法,如返回 JSON 數據或重定向。

  • params: 封裝了路徑參數,可以訪問路徑中的參數。

  • view: 封裝了渲染視圖的方法,用於渲染模板並返回 HTML。

  • auth: 封裝了認證和授權的方法,用於確認用戶是否已經登錄。

  • antl: 封裝了國際化的方法,用於翻譯文本。

  • session: 封裝了 session 的方法,用於在請求之間存儲數據。

import type { HttpContextContract } from "@ioc:Adonis/Core/HttpContext";

export default class HellosController {
say(ctx: HttpContextContract) {
ctx.response.send("hello")
}
}

小提醒:特定物件需再安裝完套件之後才會有,例如auth, session, view, antl,這系列文章中因為主要focus在api的開發上,所以只會提到auth,對此有興趣的觀眾可以自行到官網上查詢。

小結

controller雖然不是個特別難的章節,但卻是在開發上非常重要的環節,有效使用controller好處是可以把route映射在controller的方法上,有效分離程式碼落實關注點分離,避免route做太多不關他的工作。

總而言之,AdonisJS 控制器是一個非常強大且易於使用的組件,能夠有效地組織應用程序的邏輯,並提供了豐富的功能供開發者使用。


沒有留言:

張貼留言