论坛首页 Web前端技术论坛

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

浏览 38849 次
精华帖 (0) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-03-20   最后修改:2011-03-20

 

引言: 继前面的NodeJS的Hello,World!我们还可以看到其他强大之处,NodeJS现在社区的火热,以及大批工程师对它的支持之下,现在已经陆续的引出了大量的module出来了。


内容: 下面这个所演示的是NodeJS与Mysql 的交互。

这时需要为NodeJS加入Mysql 的Module了,这时前一章说到的npm(Node package manager)启到作用了。


    把Mysql Module装到NodeJS中

 $npm install Mysql 

 

  JS脚本 mysqlTest.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();
  }
);

 

  执行脚本

root@sammor-desktop:/var/iapps/nodejs/work# node mysqlTest.js 

 

    这时,Mysql数据库结果 显示:

   


 

  • 大小: 26.2 KB
  • 大小: 29 KB
   发表时间:2011-03-22  
Ubuntu~
0 请登录后投票
   发表时间:2011-03-23  
windows下如何使用?
0 请登录后投票
   发表时间:2011-03-23  
http://si-w.co.uk/blog/2011/01/23/installing-node-js-on-windows/
0 请登录后投票
   发表时间:2011-03-23  
看起来真的很不错哦~~~
0 请登录后投票
   发表时间:2011-05-31  
那是不是还得自己来封装 可用的 db库啊 郁闷
0 请登录后投票
   发表时间:2011-06-01  
vb2005xu 写道
那是不是还得自己来封装 可用的 db库啊 郁闷


这个是可以自己封装的,但现在已经有扩展的插件已经出来了,可以直接使用
0 请登录后投票
   发表时间:2011-07-28  
回复一个容易么。。。。
楼主太给力了,看了这么多NODE.JS参考资料,终于看到中文的了,肉牛满面~~~
不知楼主能把mysql的原版API地址发出来吗?
0 请登录后投票
   发表时间:2012-02-07  
我用的楼主的代码报错啊:
node.js:201
connect() is now done automatically 
0 请登录后投票
   发表时间:2012-02-13  
sumaolin 写道
我用的楼主的代码报错啊:
node.js:201
connect() is now done automatically 

有点久了哦,我这边都没有环境了,记得之前说有人回复说client.connect();注释掉。你再看看 :)
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics