准备:
0、在win7下安装nodejs,使用官网的“install”链接
1、安装mysql模块,“npm install mysql”
2、执行1中命令安装完mysql模块之后,安装的路径如“C:\Users\chezg\node_modules”
问题:
1、根据网上的资料,编写链接测试代码,如下:
var Client = require("mysql").Client;
var client = new Client();
connection.query('SELECT * FROM test', function selectCb(err, rows, fields) {
if (err) {
throw err;
}
console.log(rows);
console.log(fields);
})
client.end;
2、执行时候,报错“Error: Cannot find module 'mysql'”
3、解决方法:在环境变量里面添加NODE_PATH设置,路径为:C:\Users\chezg\node_modules,即mysql模块的安装路径
4、再次执行,报错如下:
var client = new Client();
^
TypeError: undefined is not a function
备注:利用网上的另外一种方法require("mysql").createClient({});也不行
5、猜测原因是Client不存在,即路径中提示的undefined,也就是说,require("mysql")对象中不存在Client属性以及createClient方法
6、编写测试方法,查看require("mysql")对象中究竟有什么属性和方法。
var mysql = require("mysql");
for(attr in mysql){
console.log(attr);
}
发现,猜测是正确的,果然没有Client属性以及createClient方法,估计是mysql模块已经进行了升级,而里面有一个connection的方法,猜测这是新的链接数据库的方法,为了保险起见,还是应该去查一下mysql模块的api
7、幸运的找到mysql模块的下载地址:https://github.com/felixge/node-mysql,在 Readme.md中的 instruction 中有介绍。
8、修改链接代码如下:
// 加载 mysql module
var mysql = require("mysql");
var dataBaseLinkInfo = {
"host": '127.0.0.1',
"database": 'kbs',
"port": 3306,
"user": 'kbs',
"password": "kbs"
}
var connection = mysql.createConnection(dataBaseLinkInfo);
connection.connect();
connection.query('SELECT * FROM test', function selectCb(err, rows, fields) {
if (err) {
throw err;
}
console.log(rows);
console.log(fields);
})
connection.end();
9、测试成功,已经能够得到争取的结果
总结:
github是个好东西,使用nodejs的一些模块时,可以在github上找到模块并了解到更直接详细的信息。