【发布时间】:2022-08-04 21:51:06
【问题描述】:
我还是 Express 的新手,所以请多多包涵。
我试图做的是将我的一些环境变量存储在一个全局变量中,这样就可以在任何路由中访问它们,而无需在每个路由中重新声明变量。
请注意,我使用 Express Generator 来设置项目脚手架。
这是我正在尝试做的一个精简示例:
应用程序.js
const express = require(\'express\');
// Load Routes
const inventoryRouter = require(\'./src/routes/inventory\');
// Instantiate Express/Assign App Var
const app = express();
// Set Global Env Vars
app.set(\'DevUrl\', process.env.Dev_URL || null);
// Use Routes
app.use(\'/inventory\', inventoryRouter);
module.exports = app;
Inventory.js
const express = require(\'express\');
const router = express.Router();
// Require Inventory Controller
const inventoryController = require(\'../controllers/inventoryController\');
// Inventory Routes
router.get(\'/\', inventoryController.get_inventory);
router.post(\'/\', inventoryController.update_inventory);
module.exports = router;
库存控制器.js
const router = express.Router();
// Store Vars
const LocalRouteVariable = app.get(\'DevUrl\') + \'Some String\';
// Rest of Controller Code ...
问题\"app\" 未在控制器中定义。所以,我的问题是,我怎样才能得到 \"DevUrl\" 的值?
-
用函数控制器传递
req对象有什么问题? -
这些是我将在我的应用程序中重用的环境变量,但不一定在 req 对象中。所以,我需要能够在 req 对象之外访问它。有什么想法吗?
-
如何使用 dotenv 包
-
是的,我正在使用 Dotenv。最佳实践是直接在路由文件中直接添加 process.env.something 环境变量,还是在配置文件中管理所有环境变量以在您的路由中使用?
标签: javascript node.js express routes controller