javascript - 将 Express 应用程序传递到路线文件

标签 javascript node.js express directory-structure

我正在编写一个没有前端代码的express 4 api 服务器。我选择构建我的项目,以便文件夹结构基于项目的业务逻辑,而不是基于文件类型(路由、模型等)

例如,我的 User 文件夹包含我的 userRoutes.js、userModel,js、userApi.js,...

我的主要问题实际上是我应该如何将应用程序传递到我的路线文件中?我最喜欢的方法是制作 global.app 并使其全局化,但我听说这不是最佳实践。如果您对我的业务逻辑结构有任何建议,那就太好了。

最佳答案

首先,您的文件结构听起来有点夸张。如果你需要那么多东西来干净地分解东西,那就去做吧。但是,我有预感,你做得太过分了。

无论如何,我通常做的是从每个模块返回中间件。如果需要,您可以为每个中间件提供自己的 Express 路由器。在模块中:

const express = require('express');

module.exports = function (config) {
  const router = new express.Router();

  router.get('/something', (req, res) => {
    // Code here
  });

  return router;
}

然后在您的主应用程序中:

const somethingHandler = require('somethingHandler.js');

app.use(somethingHandler);

这与所有其他 Express 中间件模块的工作方式一致。这还允许您通过主应用中的 app.use() 调用按路径命名模块。

关于javascript - 将 Express 应用程序传递到路线文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39432247/

相关文章:

javascript - 处理西里尔编码的 Node js有什么问题

javascript - 检索行时出现钛错误

javascript - 如果使用移动浏览器隐藏 DIV

javascript - 在 `setTimeout` 循环中嵌套 `for`

javascript - 我的 Node.js 网络爬虫没有显示预期的输出?

javascript - 没有客户端 JavaScript 的服务器端渲染

node.js - 参数覆盖静态路由的快速路由

node.js - Node.js 中的 execFile 不执行 Windows 命令

node.js - inversify-restify-utils Controller 中的空上下文和主体

node.js - 在 Node.js/Express 中连接中间件