Express 文档(常见问题)

1次阅读

共计 1086 个字符,预计需要花费 3 分钟才能阅读完成。

常见问题
我该如何构建我的应用程序?
这个问题没有明确的答案,答案取决于你的应用程序规模和所涉及的团队,为了尽可能灵活,Express 在结构方面没有做出任何假设。
在你喜欢的任何目录结构中,路由和其他特定于应用程序的逻辑可以存在于你希望的任意数量的文件中,查看以下示例以获取灵感:

路由列表
路由图
MVC 风格控制器

此外,还有 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!”)
})
在 express.Router() 实例上的运行时动态添加路由,这样路由不会被中间件函数取代。
如何设置错误处理程序?
你可以使用与其他中间件相同的方式定义错误处理中间件,除了使用四个参数而不是三个参数,具体的签名 (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() 中间件函数。

上一篇:静态文件

正文完
 0