如何组织我的应用程序?

这个问题没有标准答案. 具体取决于应用的规模,和参与的团队. 为了尽可能的灵活,Express在结构方面并没有任何的规定.
路由和其余的应用逻辑可以放在任何你想放的文件中. 查看下面的例子,从中获取灵感:

Express有第三方的拓展 ,简化了一些模式:

  • Resourceful routing

    如何定义模型(model)?

    Express 没有数据库的概念. 这块留给了第三方 Node 模块, 这样你就几乎可以接入任何数据库.
    有关以模型为中心的基于Express的框架,请参见 LoopBack .

    如何验证用户?

    认证是Express坚决不涉足的另一个领域。您可以使用您想要的任何身份验证方案。要获得一个简单的用户名/密码方案,请参阅 此示例

    Express 支持哪些模板引擎?

    Express支持符合(path,locals,callback)签名的任何模板引擎。要规范化模板引擎接口和缓存,请参见consolidate.js项目。未列出的模板引擎也可能支持Express签名。
    有关详细信息,请参阅使用模板引擎.

    如何处理 404 响应?

    在Express中,404响应不是错误的结果,因此错误处理程序中间件不会捕获它们。这种行为是因为404响应仅仅表示没有额外的工作要做;换句话说,Express已经执行了所有的中间件功能和路由,但发现它们都没有响应。您需要做的就是在堆栈的最底部(在所有其他函数下面)添加一个中间件函数来处理404响应:
    1. app.use(function (req, res, next) {
    2. res.status(404).send("Sorry can't find that!")
    3. })
    在运行时给express.Router() 的实例上动态添加路由,以便路由不会被中间件函数取代。

    如何设置一个错误处理器?

    错误处理器中间件的定义和其他中间件一样,唯一的区别是 4 个而不是 3 个参数,即 (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() 直接对外输出 HTML 文件。 如果你需要对外提供的资源文件很多,可以使用 express.static() 中间件。