您的位置:首页 > Web前端 > Node.js

Windows上基于NodeJS让Javascript和MySQL交互

2012-02-02 23:51 387 查看
NodeJS官网:http://nodejs.org/

安装NodeJS:http://nodejs.org/#download

安装mysql driver:

cmd

npm install mysql

驱动会被安装在当前路径下,譬如:D:\node_modules\mysql

新建mysql.js文件,代码如下:

Date.prototype.format = function(format) {
var o = {
"M+" : this.getMonth()+1,
"d+" : this.getDate(),
"h+" : this.getHours(),
"m+" : this.getMinutes(),
"s+" : this.getSeconds(),
"q+" : Math.floor((this.getMonth()+3)/3),
"S"  : this.getMilliseconds()
};
if(/(y+)/.test(format)) format = format.replace(RegExp.$1,(this.getFullYear()+"").substr(4 - RegExp.$1.length));
for(var k in o)
if(new RegExp("("+ k +")").test(format)) format = format.replace(RegExp.$1,RegExp.$1.length==1 ? o[k] :("00"+ o[k]).substr((""+ o[k]).length));
return format;
};

var client = require('D:\\node_modules\\mysql').createClient({
'host':'localhost',
'port':3306,
'user':'root',
'password':'root'
});
NODEJS_DATABASE = 'test_db',
NODEJS_TABLE = 'test_table';

client.query('SET FOREIGN_KEY_CHECKS = 0');
client.query('DROP DATABASE IF EXISTS ' + NODEJS_DATABASE);
client.query('CREATE DATABASE ' + NODEJS_DATABASE, function(err) {
if (err && err.number != client.ERROR_DB_CREATE_EXISTS) {
throw err;
}
});

client.query('USE ' + NODEJS_DATABASE);
client.query(
'CREATE TABLE ' + NODEJS_TABLE +
'(id INT(11) AUTO_INCREMENT, ' +
'title VARCHAR(255), ' +
'text TEXT, ' +
'created DATETIME, ' +
'PRIMARY KEY (id))'
);

for(var i=0; i<100; i++) {
var query = client.query(
'INSERT INTO ' + NODEJS_TABLE + ' ' +
'SET title = ?, text = ?, created = ?',
['nodejs', 'using nodejs to interact with mysql', (new Date()).format('yyyy-MM-dd hh:mm:ss')]
);
}

client.query(
'SELECT * FROM ' + NODEJS_TABLE,
function selectCb(err, results, fields) {
if (err) { throw err; }
console.log(results);
//console.log(fields);
client.end();
}
);


控制台下输入:

node mysql.js

即可。

关于其他驱动的测试,请参阅:http://cnodejs.org/blog/?p=404

其他资料:

http://club.cnodejs.org/
http://developer.51cto.com/art/201109/290443.htm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: