我的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中编写代码的更好方法。
答案 0 :(得分:3)
当您require()
文件/模块时,您获得的结果是模块通过exports
属性导出的任何内容。其他任何东西都封装在模块中,无法从外部访问。在您的情况下,在config.js
的末尾,您可以添加:
exports.client = client;
这样,无论何时require()
使用config.js,都可以访问它。
这种创建模块的方式在CommonJS规范中定义:
编辑:由于commonjs.org似乎已关闭,因此这是另一个包含此类模块信息的链接:http://dailyjs.com/2010/10/18/modules/