黑人生命也是命。
支持平等正義倡議.

常見問題

我應該如何架構我的應用程式?

這個問題沒有絕對的答案。答案取決於應用程式的規模和參與的團隊。為了盡可能靈活,Express 在架構方面沒有任何假設。

路由和其他特定於應用程式的邏輯可以存在於您想要的任何檔案中,在您偏好的任何目錄結構中。查看以下範例以獲得靈感

此外,Express 還有第三方擴充功能,可簡化其中一些模式

我如何定義模型?

Express 沒有資料庫的概念。這個概念留給第三方 Node 模組,讓你可以與幾乎任何資料庫介接。

請參閱 LoopBack,以取得以 Express 為基礎,以模型為中心的架構。

我如何驗證使用者?

驗證是 Express 沒有涉足的另一個見仁見智的領域。你可以使用任何你想要的驗證機制。如需簡單的使用者名稱/密碼機制,請參閱 此範例

Express 支援哪些樣板引擎?

Express 支援任何符合 (path, locals, callback) 簽章的樣板引擎。如需標準化樣板引擎介面和快取,請參閱 consolidate.js 專案以取得支援。未列出的樣板引擎可能仍支援 Express 簽章。

如需更多資訊,請參閱 使用樣板引擎與 Express

我如何處理 404 回應?

在 Express 中,404 回應並非錯誤的結果,因此錯誤處理器中介軟體不會擷取它們。這種行為是因為 404 回應僅表示沒有其他工作要做;換句話說,Express 已執行所有中介軟體函式和路由,但發現沒有任何回應。你只需要在堆疊的最底部(低於所有其他函式)新增一個中介軟體函式來處理 404 回應

app.use((req, res, next) => {
  res.status(404).send("Sorry can't find that!")
})

express.Router() 的執行個體上動態新增路由,讓路由不會被中介軟體函式取代。

我如何設定錯誤處理器?

你定義錯誤處理中介軟體的方式與其他中介軟體相同,但有四個引數,而不是三個;特別是具有簽章 (err, req, res, next)

app.use((err, req, res, next) => {
  console.error(err.stack)
  res.status(500).send('Something broke!')
})

有關更多資訊,請參閱 錯誤處理

如何呈現純 HTML?

您不需要!無需使用 res.render() 函數來「呈現」HTML。如果您有特定檔案,請使用 res.sendFile() 函數。如果您要從目錄提供許多資產,請使用 express.static() 中介軟體函數。

上一個:更多範例