6. FAQ
FAQ
我应该如何构建我的应用程序?
这个问题没有明确的答案。答案取决于您的应用程序的规模和涉及的团队。为了尽可能灵活,Express在结构方面不做任何假设。
在您喜欢的任何目录结构中,路由和其他特定于应用程序的逻辑可以存储在任意多个文件中。查看以下示例以获取灵感:
此外,还有Express的第三方扩展,可以简化以下某些模式:
我如何定义模型?
Express没有数据库的概念。这个概念由第三方Node模块决定,允许您与几乎任何数据库进行交互。
请参阅LoopBack了解以模型为中心的基于Express的框架。
我如何验证用户?
身份验证是Express未冒险进入的另一个有见地的领域。您可以使用您希望的任何验证方案。有关简单的用户名/密码方案,请参阅此示例。
Express支持哪些模板引擎?
Express支持符合(path, locals, callback)
签名的任何模板引擎。要规范化模板引擎接口和缓存,请参阅consolidate.js项目以获得支持。未列出的模板引擎可能仍然支持Express签名。
有关更多信息,请参阅使用Express模板引擎。
我如何处理404响应?
在Express中,404响应不是错误的结果,所以错误处理程序中间件不会捕获它们。这种行为是因为404响应只是表示没有额外的工作要做;换句话说,Express已经执行了所有的中间件功能和路由,并且发现它们都没有响应。您只需在堆栈底部添加一个中间件函数(在所有其他函数下面)来处理404响应:
app.use(function (req, res, next) {
res.status(404).send("Sorry can't find that!")
})
我如何设置错误处理程序?
您定义错误处理中间件的方式与其他中间件相同,除了四个参数而不是三个;具体与签名(err, req, res, next)
:
app.use(function (err, req, res, next) {
console.error(err.stack)
res.status(500).send('Something broke!')
})
有关更多信息,请参阅错误处理。
我如何呈现纯HTML?
你不能!没有必要使用该res.render()
功能“呈现”HTML 。如果您有特定文件,请使用该res.sendFile()
功能。如果您正在从一个目录提供许多资产,请使用express.static()
中间件功能。