Express - 将 mysql 连接传递给脚本
Express - Passing mysql connection to scripts
我定义了具有app.js
所需的所有参数的mysql连接,默认情况下如何使routes/
中的其他脚本可见,而无需或重新定义mysql参数,只需使用client.query(..)
?
我使用的一种模式是在模块中设置我的db
对象一次并将其导出:(我们称之为utils/mySQL.js
)
//I haven't used real mysql in node so excuse the pseudo-syntax:
var db = require('mysql-driver-thingy');
db.connect('localhost', 'sqlport', options...);
db.otherSetupFunctions();
console.log("Finished db setup. You should only see this message once! Cool.");
module.exports = db;
然后,我可以在我需要的任何地方都需要db
对象。由于require
是缓存的,因此这实际上不会多次调用设置方法。
在应用中.js:
var db = require('./utils/mySQL.js');
...
在模型/用户.js中:
var db = require('../utils/mySQL.js');
...
最后一个选项(不建议使用)是污染全局命名空间。这似乎是你真正想要的答案:
//set up your db
...
// and now make it available everywhere:
global.client = db.client
现在,您可以在所有模块中神奇地使用客户端对象,甚至不需要它。
但是,全局变量不好的原因有很多:
- 如果代码和其他代码定义了全局变量,则它们可能会相互冲突并相互覆盖。
- 很难找到您在哪里定义
db
/client
对象等。
您可以将 mysql 连接注入其他脚本,如下所示:
应用.js
var mysqlConnection = new Conection(params);
require('controller/main.js)(mysqlConnection);
主.js
module.exports = function(mysqlConnection) {
// You can access your mysql connection here
};
更新:
您可以以相同的方式注入多个变量。如果需要,您仍然可以从模块导出方法:
应用.js
var mysqlConnection = new Conection(params);
var news = require('model/news.js)(app, mysqlConnection);
news.list(function(err, news) {
// Do something
});
新闻.js
module.exports = function(app, mysqlConnection) {
var methods = {};
// mysql connection and app available from here
methods.list = function(cb) {
mysqlConnection.list(function(err, data) {
cb(err, data);
});
};
return methods;
};
相关文章:
- XMLHTTPRequest脚本中没有internet连接和超时
- 当没有互联网连接时,谷歌地图Java脚本API处理
- Express - 将 mysql 连接传递给脚本
- Javascript-如何连接单词脚本的两个大写首字母
- 使用chrome扩展,如何使用长寿命连接(端口)将消息从后台脚本传递到内容脚本
- 编写脚本以在提交之前将复选框值连接到字符串中
- 将脚本连接到映像
- 将 requirejs 模块与构建脚本连接起来
- 使用 MongoDB 连接池的 NodeJS 一次性脚本 - 如何终止
- 任意运行时脚本元素和 DOM 元素之间的连接
- 加载脚本文件以测试在线连接是否有任何缺点
- 谷歌应用脚本连接返回错误 401
- JS如何使按钮与脚本连接
- 通过java脚本连接到智能卡读卡器
- 谷歌脚本连接而不是添加
- 如何使用Unix |管道将Node.js脚本连接在一起(在命令行上)
- 使用vb脚本连接oracle 12c db时出错
- 谷歌应用程序脚本连接2个值从2列在电子表格-显示在列表框中
- 内存受限设备上的脚本连接性能特征
- ASP.NET 客户端脚本连接到实例