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高级编程读书笔记 - 5 数据库 - Never的更多相关文章

  1. Node.js高级编程读书笔记Outline

    Motivation 世俗一把,看看前端的JavaScript究竟能做什么. 顺便检验一下自己的学习能力. Audience 想看偏后台的Java程序员关于前端JavaScript的认识的职业前端工程 ...

  2. Node.js高级编程读书笔记 - 6 应用程序构建和调试 - Never

    Explanation 现阶段console.log(...),util.inspect(...), JSON.stringify(...)在控制台输出已经够用了[2015/07/19]. 单元测试隶 ...

  3. Node.js高级编程读书笔记 - 1 基本概念

    Outline 1 概述和安装 1.1 安装Node 1.2 Node简介 2 Node核心API基础 2.1 加载模块 2.2 应用缓冲区处理.编码和解码二进制数据 2.3 使用时间发射器模式简化事 ...

  4. Node.js高级编程读书笔记 - 4 构建Web应用程序

    Outline 5 构建Web应用程序 5.1 构建和使用HTTP中间件 5.2 用Express.js创建Web应用程序 5.3 使用Socket.IO创建通用的实时Web应用程序 5 构建Web应 ...

  5. Node.js高级编程读书笔记 - 3 网络编程

    Outline 3.4 构建TCP服务器 3.5 构建HTTP服务器 3.6 构建TCP客户端 3.7 创建HTTP请求 3.8 使用UDP 3.9 用TLS/SSL保证服务器的安全性 3.10 用H ...

  6. Node.js高级编程读书笔记 - 2 文件和进程处理

    Outline 3 文件.进程.流和网络 3.1 查询和读写文件 3.2 创建和控制外部进程 3.3 读写数据流 3 文件.进程.流和网络 3.1 查询和读写文件 path 从Node 0.8起,pa ...

  7. JS高级编程读书笔记

    导读:由于书的内容较多,内容划分也非常详尽,所以会分好几篇来写. 此页面仅作为跳转,权当个目录来用. 我会分块进行整理,大致如下: 第一章 简介 讲述javascript的历史,不打算整理,同学们大概 ...

  8. 《Node.js 高级编程》简介与第二章笔记

    <Node.js 高级编程> 作者简介 Pedro Teixerra 高产,开源项目程序员 Node 社区活跃成员,Node公司的创始人之一. 10岁开始编程,Visual Basic.C ...

  9. JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记3

    技术很多,例子很多,只好慢慢学,慢慢实践!!现在学的这本书是[JavaScript实战----JavaScript.jQuery.HTML5.Node.js实例大全] JavaScript.jQuer ...

随机推荐

  1. 深入浅出设计模式——建造者模式(Builder Pattern)

    模式动机无论是在现实世界中还是在软件系统中,都存在一些复杂的对象,它们拥有多个组成部分,如汽车,它包括车轮.方向盘.发送机等各种部件.而对于大多数用户而言,无须知道这些部件的装配细节,也几乎不会使用单 ...

  2. linux 知识汇总

    1 ) linux下文件系统类型的学习 2 )深入理解linux i节点(inode) 3 )RAID系列

  3. Less入门到上手——前端开发利器<二>深入了解

    接着昨天的继续... ... 4.嵌套: HTML部分 <table> <tr> <th colspan="3">测试列表标题</th&g ...

  4. 原!!jar包 --可执行exe文件--安装包

    这几天由于部门统计名单,都是一边报,一边统计,感觉麻烦,写了个小工具,做成安装包.其他不多说,网上都有,我就自己按照网上操作,碰到了一些问题,对这些问题说下. ----------废话少说------ ...

  5. kafka原理存储

    http://www.open-open.com/lib/view/open1421150566328.html

  6. Android DisplayMetrics类获取屏幕大小

    DisplayMetrics public class DisplayMetrics   extends Object java.lang.Object     ↳ android.util.Disp ...

  7. JavaScript数组API

    1.将数组转化为字符串:2种:               1.var str=String(str);                       将数组转化为字符串并分隔每个元素          ...

  8. ShopNc基本介绍

    ShopNc学习笔记: 1.shopNc每个文件夹定义了单入口文件eg:shopnc/admin/index.php, shopnc/cms/index.php 2.MVC M: $model = M ...

  9. C#多线程 线程池

    实例1:直接看看微软提供的代码 using System; using System.Threading; public class Example { public static void Main ...

  10. oracle生成行方法

    数据库记录是行的集合 set of row, 那么如何如何生成集合呢? oracle中常用的是 递归查询(with ... union all ...) 以及 connect by(树形查询) htt ...