【发布时间】:2018-10-14 23:20:19
【问题描述】:
我有一个使用 Express Generator 构建的 Express JS 应用程序。
我需要运行一个中间件以仅在应用启动时从后端数据库加载一些常量数据。
我的假设是在 app.js 中将中间件添加到 app.use 并不是一个好主意,因为它会运行每个 req 和 res 循环,这会降低性能。
如何实现?
【问题讨论】:
我有一个使用 Express Generator 构建的 Express JS 应用程序。
我需要运行一个中间件以仅在应用启动时从后端数据库加载一些常量数据。
我的假设是在 app.js 中将中间件添加到 app.use 并不是一个好主意,因为它会运行每个 req 和 res 循环,这会降低性能。
如何实现?
【问题讨论】:
我的处理方法可能是创建一个新文件,其中包含一个返回此数据的函数 + 一个保留缓存版本的变量。
例如:
// MyThing.js
let cachedData;
const loadData = () => {
// Load data for the first time
};
const getData = () => {
if (!cachedData) loadData();
};
module.exports = {
getData,
loadData
};
现在,如果您需要在其他任何地方检索此数据,您可以执行以下操作:
// Some-other-file.js
const { getData } = require('./MyThing.js'):
console.log(getData());
需要注意的几点:
async 函数。【讨论】: