返回顶部

收藏

Node.js 连接 MySQL 并进行数据库操作

更多

Node.js是一套用来编写高性能网络服务器的JavaScript工具包

安装 node-mysql

$ npm install mysql

创建测试表

//数据库名 NodeSample

CREATE TABLE `NodeSample`.`MyTable` (
  `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
  `firstname` VARCHAR( 20 ) NOT NULL ,
  `lastname` VARCHAR( 20 ) NOT NULL ,
  `message` TEXT NOT NULL
) ENGINE = MYISAM ;

连接数据库

var sys = require('sys');

var Client = require('mysql').Client;
var client = new Client();

client.user = 'someuser';
client.password = 'password';

client.connect(function(error, results) {
  if(error) {
    console.log('Connection Error: ' + error.message);
    return;
  }
  console.log('Connected to MySQL');
});

打开数据库

ClientConnectionReady = function(client)
{
    client.query('USE NodeSample', function(error, results) {
        if(error) {
            console.log('ClientConnectionReady Error: ' + error.message);
            client.end();
            return;
        }
    });
};

完成数据库操作程序

var sys = require('sys');

var Client = require('mysql').Client;
var client = new Client();

client.user = 'someuser';
client.password = 'password';

console.log('Connecting to MySQL...');

client.connect(function(error, results) {
  if(error) {
    console.log('Connection Error: ' + error.message);
    return;
  }
  console.log('Connected to MySQL');
  ClientConnectionReady(client);
});

ClientConnectionReady = function(client)
{
    client.query('USE NodeSample', function(error, results) {
        if(error) {
            console.log('ClientConnectionReady Error: ' + error.message);
            client.end();
            return;
        }
        ClientReady(client);
    });
};

ClientReady = function(client)
{
  var values = ['Chad', 'Lung', 'Hello World'];
  client.query('INSERT INTO MyTable SET firstname = ?, lastname = ? , message = ?', values,
    function(error, results) {
      if(error) {
        console.log("ClientReady Error: " + error.message);
        client.end();
        return;
      }
      console.log('Inserted: ' + results.affectedRows + ' row.');
      console.log('Id inserted: ' + results.insertId);
    }
  );
  GetData(client);
}

GetData = function(client)
{
  client.query(
    'SELECT * FROM MyTable',
    function selectCb(error, results, fields) {
      if (error) {
          console.log('GetData Error: ' + error.message);
          client.end();
          return;
      }
      // Uncomment these if you want lots of feedback
      //console.log('Results:');
      //console.log(results);
      //console.log('Field metadata:');
      //console.log(fields);
      //console.log(sys.inspect(results));

      if(results.length > 0)
      {
        var firstResult = results[0];
        console.log('First Name: ' + firstResult['firstname']);
        console.log('Last Name: ' + firstResult['lastname']);
        console.log('Message: ' + firstResult['message']);
      }
  });

  client.end();
  console.log('Connection closed');
};

标签:Node.js,MySQL

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. yejr 发表 2014-10-09 16:34:02 tpcc-mysql安装、使用、结果解读
  2. debugo 发表 2014-05-03 06:10:13 MariaDB 10 Multi-Master Replication 测试
  3. rfyiamcool 发表 2014-10-25 02:29:20 golang使用go-sql-driver实现mysql增删改操作
  4. Lunar 发表 2014-11-02 14:34:09 MYSQL小白的FAQ系列—-4—-使用rpm包安装后,如何卸载干净mysql?
  5. rfyiamcool 发表 2014-11-09 15:22:30 python使用sqlite3模块操作sqlite数据库
  6. tenking 发表 2014-11-17 00:09:03 MySql常用命令总结
  7. OurMySQL 发表 2014-11-21 00:05:40 MySQL的主从复制
  8. P.Linux 发表 2011-01-18 21:01:02 MySQL小技巧问答(一)
  9. heiyeshuwu 发表 2014-11-01 00:00:00 [转][转]便于理解mysql内幕的各种逻辑图组
  10. 173ops 发表 2014-11-06 00:39:25 [MySQL FAQ]系列 — 如何将两个表名对调
  11. admin 发表 2014-11-27 06:41:42 mysql修改密码
  12. 博主 发表 2011-04-07 16:00:00 MySQL用户变量

发表评论