我如何编写此代码以在nodejs中正常工作

时间:2012-05-31 04:11:03

标签: html node.js object

我的nodejs项目中有config.js

var mysql  = require('mysql');
var db_name = 'node';
var client = mysql.createClient({
  user: 'root',
  password: 'pass',
});
client.query('USE '+db_name);

我已将它用作项目的配置文件。我如何使用此代码调用mysql查询。

我在user.js中有这段代码

var global = require('./config.js');

this.CheckUserValid = function (login, pass) {
    var sql = "SELECT * FROM `user` WHERE login = ? AND pass= ?";
    global.client.query(sql, [login, pass], function selectResutl(err, results, fields) {
        if (!err) return results;
        else
            throw err;
    });
}

TypeError: Cannot call method 'query' of undefined
    at Object.CheckUserValid (C:\wamp\www\Node\user.js:6:19)

有人可以帮我告诉我如何以更好的方式做到这一点。实际上我在过去使用asp.net mvc所以我试过了。有人告诉我在nodejs中编写代码的更好方法。

1 个答案:

答案 0 :(得分:3)

当您require()文件/模块时,您获得的结果是模块通过exports属性导出的任何内容。其他任何东西都封装在模块中,无法从外部访问。在您的情况下,在config.js的末尾,您可以添加:

exports.client = client;

这样,无论何时require()使用config.js,都可以访问它。

这种创建模块的方式在CommonJS规范中定义:

编辑:由于commonjs.org似乎已关闭,因此这是另一个包含此类模块信息的链接:http://dailyjs.com/2010/10/18/modules/