`
manxisuo
  • 浏览: 27940 次
  • 性别: Icon_minigender_1
  • 来自: 东营
社区版块
存档分类
最新评论

[笔记]Node.js使用MySQL

阅读更多

1. 用npm安装sql模块。在终端执行:

npm install mysql

 

2. 简单的查询:

var mysql = require('mysql');

var conn = mysql.createConnection(
	{
		host: 'localhost',
		user: 'root',
		password: 'root',
		database: 'test'
	}
);

conn.connect();

var queryString = 'SELECT * FROM Person';

conn.query(queryString, function(err, rows, fields) {
	if (err) throw err;
	
	for (var i in rows) {
		console.log(i, rows[i]);
	}
	
	for (var i in fields) {
		// console.log(i, fields[i]);
	}
});

conn.end();

 

结果如下:

   


 当然,Connection的选项也可以这样写:

var conn = mysql.createConnection('mysql://root:root@localhost/test');

 

上面这种方式,是等到查询得到所有行之后,才回调的。如果表的行数很大,你想每查到一行就执行相应的动作时,可以这样写:

var mysql = require('mysql');

var conn = mysql.createConnection('mysql://root:root@localhost/test');

conn.connect();

var query = conn.query('SELECT * FROM Person');

query.on('error', function(err) {
	throw err;
});

query.on('fields', function(fields) {
	console.log(fields);
});

query.on('result', function(row) {
    console.log(row);
});

conn.end();

 

需要注意的是,只要某一行数据到来时,就会相应的调用回调函数。如果由于某种原因,你想在处理完某一行之前不希望得到下一行,那么你需要暂停查询,等到处理完这一行后再恢复查询。但是要小心,由于某些错误,可能会导致结果的不一致性。

query.on('result', function(row) {
    conn.pause();
    console.log(row);
    conn.resume();
});

 

 

 

 

参考:http://www.nodejs.net/a/20130128/233615.html

  • 大小: 8 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics