升级到Express 3.0后,我的节点应用程序出现了一些问题。所以,既然我正在重写它,我试图遵循routes/index.js
的风格,因为它看起来很干净。
所以,在我的主app.js
中,我有一些变量,例如:
var calls = 0;
var agents = [];
并使用node-mysql
模块。但是,路径定义没有app.js
范围,但是它们自己的范围因此calls
和agents
不可见。
我该如何让它们可见?
对于mysql,我试过类似的东西:
// libraries/mysql.js
mysql = require('mysql');
var mysql_conf = {
host: myhost,
user: myuser,
password: mypass,
database: mydb
};
var mysql_client = mysql.createClient(mysql_conf);
exports.mysql_client;
//Later in routes/index.js
mysql_client = require('../helpers/mysql.js');
但似乎没有像TypeError: Object #<Object> has no method 'query'
有任何提示吗?
答案 0 :(得分:2)
该行
exports.mysql_client;
实际上没有为mysql_client
的{{1}}属性分配任何内容。它访问属性,并立即丢弃该值。你需要做这样的事情:
exports