主页 > 知识库 > 网络编程 > 其他 >

NodeJS操作MySQL数据库教程

来源:CIT信息网 作者:CIT小乐乐 发表于:2012-08-27 11:24  点击:
通常在NodeJS开发中我们经常涉及到操作数据库,尤其是 MySQL ,作为应用最为广泛的开源数据库则成为我们的首选,本篇就来介绍下如何通过NodeJS来操作 MySQL 数据库。 安装MySQL模块到NodeJS中 我们需要让NodeJS支持MySQL,则需要将MySQL模块添加到系统支持库
通常在NodeJS开发中我们经常涉及到操作数据库,尤其是MySQL,作为应用最为广泛的开源数据库则成为我们的首选,本篇就来介绍下如何通过NodeJS来操作MySQL数据库。

安装MySQL模块到NodeJS中

我们需要让NodeJS支持MySQL,则需要将MySQL模块添加到系统支持库中,通过命令行执行:


$npm install Mysql   
即可完成了MySQL的支持

安装MySQL服务器

可以查看《Linux下安装MySQL》,如果是在Windows下安装,那更为简单了。

编写测试脚本

连接MySQL数据库,我们需要先进行连接,这里我们编写一个cit.cn.mysql.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();
  }
);

执行NodeJS代码查看效果



我们执行


root@sammor-desktop:/var/iapps/nodejs/work# node cit.cn.mysql.js  
这时数据库显示:






via:http://www.cit.cn/tech/develop/node-js/2012/0827/7905.html

    有帮助
    (4)
    66.7%
    没帮助
    (2)
    33.3%