职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 560|回复: 6

NodeJS初探之二——与Mysql的交互

[复制链接]
有烟没火 发表于 2011-7-30 09:41 | 显示全部楼层 |阅读模式
  
引言: 继前面的NodeJS的Hello,World!我们还可以看到其他强大之处,NodeJS现在社区的火热,以及大批工程师对它的支持之下,现在已经陆续的引出了大量的module出来了。


内容: 下面这个所演示的是NodeJS与Mysql 的交互。
这时需要为NodeJS加入Mysql 的Module了,这时前一章说到的npm(Node package manager)启到作用了。


    把Mysql Module装到NodeJS中
Js代码  
$npm install Mysql   

$npm install Mysql  
  JS脚本 mysqlTest.js
Js代码  
// mysqlTest.js   
//加载mysql Module   
var Client = require('mysql').Client,   
    client = new Client(),   
     
  //要创建的数据库名   
    TEST_DATABASE = 'nodejs_mysql_test',   
    //要创建的表名   
    TEST_TABLE = 'test';   
  
//用户名   
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();   
  }   
);  

// mysqlTest.js
//加载mysql Module
var Client = require('mysql').Client,
    client = new Client(),
  
  //要创建的数据库名
    TEST_DATABASE = 'nodejs_mysql_test',
    //要创建的表名
    TEST_TABLE = 'test';

//用户名
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();
  }
);

  执行脚本
Js代码  
root@sammor-desktop:/var/iapps/nodejs/work# node mysqlTest.js   

root@sammor-desktop:/var/iapps/nodejs/work# node mysqlTest.js  
    这时,Mysql数据库结果 显示:
   





大小: 26.2 KB

大小: 29 KB
查看图片附件

愚人 发表于 2011-7-30 09:41 | 显示全部楼层
Ubuntu~

月上萧萧 发表于 2011-7-30 09:41 | 显示全部楼层
windows下如何使用?

紫衿 发表于 2011-7-30 09:41 | 显示全部楼层
http://si-w.co.uk/blog/2011/01/23/installing-node-js-on-windows/

yoyo 发表于 2011-7-30 09:42 | 显示全部楼层
那是不是还得自己来封装 可用的 db库啊 郁闷

fl 发表于 2011-7-30 09:42 | 显示全部楼层
vb2005xu
那是不是还得自己来封装 可用的 db库啊 郁闷


这个是可以自己封装的,但现在已经有扩展的插件已经出来了,可以直接使用
gz-vps 发表于 2011-8-3 12:08 | 显示全部楼层
呵呵 我可不敢~~~~
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-3-29 05:02 , Processed in 0.141146 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表