如何在node.js中正确导出?

时间:2012-07-24 12:52:59

标签: node.js express

升级到Express 3.0后,我的节点应用程序出现了一些问题。所以,既然我正在重写它,我试图遵循routes/index.js的风格,因为它看起来很干净。

所以,在我的主app.js中,我有一些变量,例如:

var calls = 0;
var agents = [];

并使用node-mysql模块。但是,路径定义没有app.js范围,但是它们自己的范围因此callsagents不可见。

我该如何让它们可见?

对于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'

那样奏效

有任何提示吗?

1 个答案:

答案 0 :(得分:2)

该行

exports.mysql_client;

实际上没有为mysql_client的{​​{1}}属性分配任何内容。它访问属性,并立即丢弃该值。你需要做这样的事情:

exports