Node.js高级编程读书笔记 - 5 数据库 - Never

Outline

6 连接数据库

  • 6.1 使用node-mysql连接MySQL数据库
  • 6.2 使用Nano连接CouchDB数据库
  • 6.3 使用Mongoose连接MongoDB数据库

6 连接数据库

6.1 使用node-mysql连接MySQL数据库

node-mysql书上使用的版本与最新的版本API变化很大, 最新版本文档见node-mysql lib,可以看到还提供了连接池,这里不做介绍。

一个简单客户端

/**
demonstration of node-mysql serviec
REF: https://github.com/felixge/node-mysql/
*/

var mysql = require("mysql");
var connection = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "root"
});

// 1 create database
connection.query("DROP DATABASE IF EXISTS node");
connection.query("CREATE DATABASE node");
connection.query("USE node");

// 2 create table
connection.query("CREATE TABLE test("+
  "id INT(11) AUTO_INCREMENT, " +
  "content VARCHAR(255)," +
  "PRIMARY KEY(id))");

// 3 insert data
for(var i = 0; i < 100; i++){
  connection.query("INSERT INTO test(content) VALUES(?)", ["content for row " + (i+1)]);
}

// 4 update data
connection.query("UPDATE test SET content = ? WHERE id >= ?", ["new content", 90],
  function(error, info){
    console.log("changed " + info.affectedRows + " rows.");
  });

// 5 query data - REF https://github.com/felixge/node-mysql/#streaming-query-rows
var query =  connection.query("SELECT id, content FROM test where id >= ? AND id <= ?",
  [80, 90]);
query.on("error", function(error){
  throw error;
}).on("result", function(row){
  connection.pause();
  console.log("#%s is %s", row.id, row.content);
  connection.resume();
}).on("end", function(){
  console.log("query finished.");
});

// close connection
connection.end();

6.2 使用Nano连接CouchDB数据库

TODO

6.3 使用Mongoose连接MongoDB数据库

TODO

6.4 连接Redis

TODO

上一篇:Node.js高级编程读书笔记 - 1 基本概念


下一篇:html5的触摸事件