注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

snoopyxdy的博客

https://github.com/DoubleSpout

 
 
 

日志

 
 

node.js学习日志(三)—— MYSQL  

2011-07-28 15:44:07|  分类: node |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
前一篇文章如何利用YUI+EXPRESS连接数据库还没弄懂,不过这里有个替代的方法,即加载一个mysql模块来处理mysql的读写连接。

下面来简单介绍一下:
先安装:npm install mysql
然后我们在node.js中只要输入:
var Client = require('mysql').Client, 
    client = new Client();
就可以实例化一个mysql客户端链接,用来读写MYSQL数据库。
代码实现:
// mysqlTest.js 
//加载mysql Module 
var Client = require('mysql').Client, 
    client = new Client(), 
   
  //要创建的数据库名 
    TEST_DATABASE = 'nodejs_mysql_test', 
    //要创建的表名 
    TEST_TABLE = 'test'; 

 //数据库地址,如果是本地的则不用设置这个host属性
client.host = '10.1.1.222';
//用户名 
client.user = 'root'; 
//密码 
client.password = 'root'; 
//创建连接 
client.connect(); 
 
client.query('CREATE DATABASE '+TEST_DATABASE, function(err) { 
  if (err && err.number != Client.ERROR_DB_CREATE_EXISTS) { 
    throw err; 
  } 
}); 
 
// If no callback is provided, any errors will be emitted as `'error'` 
// events by the client 
client.query('USE '+TEST_DATABASE); 
client.query( 
  'CREATE TABLE '+TEST_TABLE+ 
  '(id INT(11) AUTO_INCREMENT, '+ 
  'title VARCHAR(255), '+ 
  'text TEXT, '+ 
  'created DATETIME, '+ 
  'PRIMARY KEY (id))' 
); 
 
client.query( 
  'INSERT INTO '+TEST_TABLE+' '+ 
  'SET title = ?, text = ?, created = ?', 
  ['super cool', 'this is a nice text', '2010-08-16 10:00:23'] 
); 
 
var query = client.query( 
  'INSERT INTO '+TEST_TABLE+' '+ 
  'SET title = ?, text = ?, created = ?', 
  ['another entry', 'because 2 entries make a better test', '2010-08-16 12:42:15'] 
); 
 
client.query( 
  'SELECT * FROM '+TEST_TABLE, 
  function selectCb(err, results, fields) { 
    if (err) { 
      throw err; 
    } 
 
    console.log(results); 
    console.log(fields); 
    client.end(); 
  } 
); 
//具体的client设置见mysql模块的client.js

/*可以将这些放置到配置文件中,可以设置这么多参数*/
 this.host = 'localhost';      //数据库地址
  this.port = 3306;           //默认端口
  this.user = null;             //用户名
  this.password = null;   //密码
  this.database = '';           //数据库名

  this.typeCast = true;       
  this.flags = Client.defaultFlags;      //标志
  this.maxPacketSize = 0x01000000;          //最大包大小
  this.charsetNumber = Client.UTF8_UNICODE_CI;           //编码
  this.debug = false;          //是否调试
  this.ending = false;        //是否已经关闭
  this.connected = false;      //是否已经连接
 
  this._greeting = null;         
  this._queue = [];
  this._connection = null;
  this._parser = null;

最后要感谢sammor同学,此文是从他的iteye上转载然后加工的,难得的中文node教程,泪流满面啊!!!!!!!
原文地址:http://www.iteye.com/topic/968847
  评论这张
 
阅读(2555)| 评论(4)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016