?
This document uses PHP Chinese website manual Release
這個問題沒有明確的答案。答案取決于您的應(yīng)用程序的規(guī)模和涉及的團(tuán)隊(duì)。為了盡可能靈活,Express在結(jié)構(gòu)方面不做任何假設(shè)。
在您喜歡的任何目錄結(jié)構(gòu)中,路由和其他特定于應(yīng)用程序的邏輯可以存儲在任意多個文件中。查看以下示例以獲取靈感:
Route listings
Route map
MVC style controllers
此外,還有Express的第三方擴(kuò)展,可以簡化以下某些模式:
Resourceful routing
Express沒有數(shù)據(jù)庫的概念。這個概念由第三方Node模塊決定,允許您與幾乎任何數(shù)據(jù)庫進(jìn)行交互。
請參閱LoopBack了解以模型為中心的基于Express的框架。
身份驗(yàn)證是Express未冒險進(jìn)入的另一個有見地的領(lǐng)域。您可以使用您希望的任何驗(yàn)證方案。有關(guān)簡單的用戶名/密碼方案,請參閱此示例。
Express支持符合(path, locals, callback)
簽名的任何模板引擎。要規(guī)范化模板引擎接口和緩存,請參閱consolidate.js項(xiàng)目以獲得支持。未列出的模板引擎可能仍然支持Express簽名。
有關(guān)更多信息,請參閱使用Express模板引擎。
在Express中,404響應(yīng)不是錯誤的結(jié)果,所以錯誤處理程序中間件不會捕獲它們。這種行為是因?yàn)?04響應(yīng)只是表示沒有額外的工作要做;換句話說,Express已經(jīng)執(zhí)行了所有的中間件功能和路由,并且發(fā)現(xiàn)它們都沒有響應(yīng)。您只需在堆棧底部添加一個中間件函數(shù)(在所有其他函數(shù)下面)來處理404響應(yīng):
app.use(function (req, res, next) { res.status(404).send("Sorry can't find that!")})
您定義錯誤處理中間件的方式與其他中間件相同,除了四個參數(shù)而不是三個;具體與簽名(err, req, res, next)
:
app.use(function (err, req, res, next) { console.error(err.stack) res.status(500).send('Something broke!')})
有關(guān)更多信息,請參閱錯誤處理。
你不能!沒有必要使用該res.render()
功能“呈現(xiàn)”HTML 。如果您有特定文件,請使用該res.sendFile()
功能。如果您正在從一個目錄提供許多資產(chǎn),請使用express.static()
中間件功能。