【发布时间】:2018-12-12 17:42:29
【问题描述】:
我有一个 express/node 应用程序,我想让应用程序实例在多个文件中可用,而不会遇到循环引用(例如,在 express 包含路由对象之前,您需要将应用程序对象导出到路由中.js 文件,但随后将 routes.js 文件导出回主 app.js 文件)。
虽然我知道 routes 对象可以解决这个用例,但我正在尝试找出不同的模式是否可行/是否是最佳实践。
所以...我可以有一个单独的服务文件,我需要 express 然后在该服务文件中创建应用程序吗?并让我的主根文件夹以及其他 n 个文件夹(每个文件夹都有自己的循环)安全地需要此服务中的应用程序。
Example Folder structure
├── app.js // main file; ordinarily would have required routes.js
├── routes
├── routes.js // ordinarily would have required top app.js for app object
├── services
├── firebase.js
├── amplitude.js
└── app.js // instead, create app here and export it to both above
例如,三个文件可能如下所示:
app.js(主)
const app = require('./services/app');
app.listen(3000, () => console.log('Listening on port 3000));
routes/routes.js
const app = require('../services/app');
app.get('/', (req, res) => res.send('hello world'));
services/app.js
const express = require('express');
const app = express();
module.exports.app = app;
这是安全/最佳做法吗?
【问题讨论】:
标签: node.js express require dependency-management circular-dependency