`
sammor
  • 浏览: 414099 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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

阅读更多

 

引言: 继前面的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
分享到:
评论
8 楼 codingstandards 2011-11-16  
ntop 写道
我按流程来的,怎么跑步起来啊,提示如下错误:
node.js:134
        throw e; // process.nextTick error, or 'error' event on first tick
        ^
Error: deprecated: connect() is now done automatically.
    at Client.connect (/Users/ntop/Documents/nodespace/todo/node_modules/mysql/lib/client.js:40:9)
    at Object.<anonymous> (/Users/ntop/Documents/nodespace/todo/sqltest.js:14:8)
    at Module._compile (module.js:411:26)
    at Object..js (module.js:417:10)
    at Module.load (module.js:343:31)
    at Function._load (module.js:302:12)
    at Array.<anonymous> (module.js:430:10)
    at EventEmitter._tickCallback (node.js:126:26)

请指教。

注释掉 client.connect();  就可以了
7 楼 ntop 2011-09-21  
我按流程来的,怎么跑步起来啊,提示如下错误:
node.js:134
        throw e; // process.nextTick error, or 'error' event on first tick
        ^
Error: deprecated: connect() is now done automatically.
    at Client.connect (/Users/ntop/Documents/nodespace/todo/node_modules/mysql/lib/client.js:40:9)
    at Object.<anonymous> (/Users/ntop/Documents/nodespace/todo/sqltest.js:14:8)
    at Module._compile (module.js:411:26)
    at Object..js (module.js:417:10)
    at Module.load (module.js:343:31)
    at Function._load (module.js:302:12)
    at Array.<anonymous> (module.js:430:10)
    at EventEmitter._tickCallback (node.js:126:26)

请指教。
6 楼 sammor 2011-06-01  
vb2005xu 写道
那是不是还得自己来封装 可用的 db库啊 郁闷


这个是可以自己封装的,但现在已经有扩展的插件已经出来了,可以直接使用
5 楼 vb2005xu 2011-05-31  
那是不是还得自己来封装 可用的 db库啊 郁闷
4 楼 argont 2011-03-23  
看起来真的很不错哦~~~
3 楼 freecode 2011-03-23  
http://si-w.co.uk/blog/2011/01/23/installing-node-js-on-windows/
2 楼 zhaozk 2011-03-23  
windows下如何使用?
1 楼 love_ai87 2011-03-22  
Ubuntu~

相关推荐

Global site tag (gtag.js) - Google Analytics