node.js - express 4 : Storing db instance

标签 node.js express

在express4中,将数据库实例存储在app.locals中或使用app.set存储它是不好的做法吗?因为我正在考虑它,因为我在整个应用程序中都需要它,所以访问起来会更容易。

最佳答案

它应该工作得很好,不,我不认为这是不好的做法(至少不是可怕) - 毕竟,app.locals 旨在为您提供一个安全的地方来放置您的全局值。

但是,使用 Express 存储像这样的各种全局值确实会导致您的应用程序与 Express 紧密绑定(bind)。如果您决定删除 Express 并将其替换为其他内容,则必须查找并更改现在分散在代码中的所有对 app.local 的引用。

如果您想避免这种情况,一种简单的模式是创建一个导出所需值的模块 - 这允许您将所有关联的代码保留在一个位置,并在需要时导入它。例如:

// modules/database.js

// initialize the database
const db = initializeDatabase();

// export a "getter" for the database instance
export const get = () => db;

然后,当你想使用数据库实例时:

// index.js

// import the database "getter"
import { get } from './modules/database';

// perform a query
const rows = get().query('SELECT * FROM table');

只需在您想要使用数据库的任何地方导入modules/database即可。

关于node.js - express 4 : Storing db instance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41981875/

相关文章:

mysql - 使用 express-mysql-session 验证

node.js - React Native bundle 错误 : Module `scheduler` does not exist in the Haste module map

sql-server - 在 Linux 上使用 Node.js 访问 SQL Server

javascript - 在expressjs中传递get参数

javascript - AngularJS 和 Node.js 与 ExpressJS 集成

node.js - 在 Ubuntu 16.04 中卸载 npm 后无法安装 npm

node.js - 如何在 Mongoose 查询对象中更新

angularjs - Cookie 在 localhost 上运行良好,但在 VPS 上不起作用

javascript - React 是否可以提供安心的服务?

node.js - 使用带有来自不同 IP 的自签名证书的 https 时出错