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高级编程读书笔记 - 5 数据库 - Never的更多相关文章
- Node.js高级编程读书笔记Outline
Motivation 世俗一把,看看前端的JavaScript究竟能做什么. 顺便检验一下自己的学习能力. Audience 想看偏后台的Java程序员关于前端JavaScript的认识的职业前端工程 ...
- Node.js高级编程读书笔记 - 6 应用程序构建和调试 - Never
Explanation 现阶段console.log(...),util.inspect(...), JSON.stringify(...)在控制台输出已经够用了[2015/07/19]. 单元测试隶 ...
- Node.js高级编程读书笔记 - 1 基本概念
Outline 1 概述和安装 1.1 安装Node 1.2 Node简介 2 Node核心API基础 2.1 加载模块 2.2 应用缓冲区处理.编码和解码二进制数据 2.3 使用时间发射器模式简化事 ...
- Node.js高级编程读书笔记 - 4 构建Web应用程序
Outline 5 构建Web应用程序 5.1 构建和使用HTTP中间件 5.2 用Express.js创建Web应用程序 5.3 使用Socket.IO创建通用的实时Web应用程序 5 构建Web应 ...
- 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 ...
- Node.js高级编程读书笔记 - 2 文件和进程处理
Outline 3 文件.进程.流和网络 3.1 查询和读写文件 3.2 创建和控制外部进程 3.3 读写数据流 3 文件.进程.流和网络 3.1 查询和读写文件 path 从Node 0.8起,pa ...
- JS高级编程读书笔记
导读:由于书的内容较多,内容划分也非常详尽,所以会分好几篇来写. 此页面仅作为跳转,权当个目录来用. 我会分块进行整理,大致如下: 第一章 简介 讲述javascript的历史,不打算整理,同学们大概 ...
- 《Node.js 高级编程》简介与第二章笔记
<Node.js 高级编程> 作者简介 Pedro Teixerra 高产,开源项目程序员 Node 社区活跃成员,Node公司的创始人之一. 10岁开始编程,Visual Basic.C ...
- JavaScript、jQuery、HTML5、Node.js实例大全-读书笔记3
技术很多,例子很多,只好慢慢学,慢慢实践!!现在学的这本书是[JavaScript实战----JavaScript.jQuery.HTML5.Node.js实例大全] JavaScript.jQuer ...
随机推荐
- Number To Indian Rupee Words in Oracle Forms / Reports
Convert numbers to Indian Rupees format in Oracle Forms / Reports.Create the below mention function ...
- How to generate a random number in R
Generate a random number between 5.0 and 7.5x1 <- runif(1, 5.0, 7.5) # 参数1表示产生一个随机数x2 <- runif ...
- pycharm上运行django服务器端、ip地址访问
安装Django 下载Django包,解压缩. CMD 进入解压路径下. 执行:python setup.py install 增加环境变量: C:\Python27\Scripts 测试djang ...
- 利用backtrace和objdump进行分析挂掉的程序
转自:http://blog.csdn.net/hanchaoman/article/details/5583457 汇编不懂,先把方法记下来. glibc为我们提供了此类能够dump栈内容的函数簇, ...
- js获取url中的参数值
在博客园看家一片不错的文章:http://www.cnblogs.com/EnderH/p/5398409.html 在这里记下对自己比较有用的三种: 1.正则 function GetQuerySt ...
- px和em的区别(转)
在国内网站中,包括三大门户,以及“引领”中国网站设计潮流的蓝色理想,ChinaUI等都是使用了px作为字体单位.只有百度好歹做了个可调的表率.而 在大洋彼岸,几乎所有的主流站点都使用em作为字体单位, ...
- 常用webservice接口
商业和贸易: 1.股票行情数据 WEB 服务(支持香港.深圳.上海基金.债券和股票:支持多股票同时查询) Endpoint: http://webservice.webxml.com.cn/WebSe ...
- Ggoogle Protocol Buffer的使用 (基于C++语言)
首先说明的是Protocol Buffle是灵活高效的.它的一个很好的优点(很重要的,我认为)就是后向兼容性--当我们扩展了了.proto文件后,我们照样可以用它来读取之前生成的文件. 之前已经写了关 ...
- android sdk 更新那些文件
上篇经验,完成了android开发环境的搭建,相信大家也下载了那1.52G,已经下载好了的Adt_bundle. 那么,我们来点击SDK Manager.exe,看看有些什么吧 2 如图所示,为整个目 ...
- android ViewGroup事件分发机制
1:事件分销过程 自定义一个LinearLayout,重写dispatchTouchEvent onInterceptTouchEvent onTouchEvent,定义一个按键重写dispathcT ...