(nodejs)nodejs连接mysql遇到的问题与解决方法

准备:

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上找到模块并了解到更直接详细的信息。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值