node 连接mysql 中间件_如何在node.js里连接和使用mysql
满意答案
rxuihh
2017.05.20
采纳率:41% 等级:9
已帮助:66人
安装
$ npm install mysql
有关之前的0.9.x版本的信息, 请访问 v0.9分支。
有时我还会要求你从Github安装最新版以检查bug是否已修复。在这种情况下,请输入:
$ npm install mysqljs/mysql
引言
这是node.js的mysql驱动。它是用JavaScript编写的,不需要编译,完全遵循MIT许可协议。
下面是一个如何使用它的例子:
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'localhost',
user : 'me',
password : 'secret',
database : 'my_db'
});
connection.connect();
connection.query('SELECT 1 + 1 AS solution', function(err, rows, fields) {
if (err) throw err;
console.log('The solution is: ', rows[0].solution);
});
connection.end();
从这个例子中,你可以了解到以下几点:
对于一个连接,你所调用的每个方法都是按顺序排队并依次执行的。
使用end()关闭连接,以确保给mysql服务器发送退出(quit)包以前执行所有剩余的查询。
推荐的建立链接的一个方法:
var mysql = require('mysql');
var connection = mysql.createConnection({
host : 'example.org',
user : 'bob',
password : 'secret'
});
connection.connect(function(err) {
if (err) {
console.error('error connecting: ' + err.stack);
return;
}
console.log('connected as id ' + connection.threadId);
});
然后,我们可以通过建立一个连接来进行查询:
var mysql = require('mysql');
var connection = mysql.createConnection(...);
connection.query('SELECT 1', function(err, rows) {
// connected! (unless `err` is set)
});
以上二种方法都是正确且合适的。至于如何取舍,就要看你怎么去处理所遇到的错误了。不管哪种类型的错误,那都是致命的,我们需要去看所提示的具体的错误信息。
连接参数
在建立新连接时,可以设置以下参数:
host:连接的数据库地址。(默认:localhost)
port:连接地址对应的端口。(默认:3306)
localAddress: 源IP地址使用TCP连接。(可选)
socketPath:当主机和端口参数被忽略的时候,可以填写一个Unix的Socket地址。
user: mysql的连接用户名。
password: 对应用户的密码。
database: 所需要连接的数据库的名称。(可选)
charset: 连接的编码形式。这就是mysql中的整理。(例如:utf8_general_ci)如果被指定,则作为默认的整理排序规则。(默认:utf8_general_ci)
timezone:用来保存当前本地的时区。(默认:local)
connectTimeout: 设置在连接的时候,超过多久以后未响应则返回失败。(默认:10000)
stringifyObjects: stringify对象代替转换值。issue# 501。(默认:false)
insecureAuth:使用旧(不安全)的连接方式去连接MySQL。(默认:false)
typeCast: 确定列值是否需要转换为本地JavaScript类型。(默认:true)
queryFormat:自定义查询的方式。地址:Custom format.
supportBigNumbers: 如果你使用了BIGINT和DECIMAL格式的表列,那么需要开启这个参数来支持。(默认:false)只有当他们超过JavaScript所能表达的 最长的字节的时候,如果没有设置这个参数,则会将过长的数字作为字符串传递。否则,返回对象的长度。如果supportBigNumbers参数被忽略, 则这个参数也会被忽略。
dateStrings:一些日期类型(TIMESTAMP, DATETIME, DATE)会以Strings的类型返回,然后转换成JavaScript的日期对象。(默认:false)
debug:是否把连接情况打印到文件。(默认:false)
trace: 生成错误的堆栈跟踪,包括库入口的调用位置(“长堆栈的轨迹”)。一般会造成轻微的性能损失。(默认:true)
终止连接
终止连接的方法有两种。调用end()方法可以正常地终止一个连接:
connection.end(function(err) {
// 连接终止
});
这种方法将确保给MySQL服务器发送COM_QUIT包之前所有队列中的查询都会被执行。如果在发送COM_QUIT包之前发生了致命错误,那么会给回调函数传递一个err参数,但是不管怎样连接都会关闭。
另外一种终止连接的方法是调用destroy()方法。该方法会立即终止底层套接字(underlying socket)。另外,destroy()不会触发更多的事件和回调函数。
00分享举报
node 连接mysql 中间件_如何在node.js里连接和使用mysql相关推荐
- node.js api接口_如何在Node.js API客户端中正常处理故障
node.js api接口 by Roger Jin 罗杰·金(Roger Jin) 如何在Node.js API客户端中正常处理故障 (How to gracefully handle failur ...
- node 单元测试_如何在Node中模拟对单元测试的请求
node 单元测试 by Edo Rivai 由Edo Rivai 如何在Node中模拟对单元测试的请求 (How to mock requests for unit testing in Node) ...
- npm中node更新_如何在Node中管理NPM和功能时保持理智
npm中node更新 by Ted Gross 泰德·格罗斯(Ted Gross) 如何在Node中管理NPM和功能时保持理智 (How to keep your sanity while manag ...
- mysql fa连接池中间件_小米开源数据库中间件gaea
简介 Gaea是小米商城/系统组研发的基于 mysql 协议的 数据库 中间件,目前在小米商城大陆和海外得到广泛使用,包括订单.社区.活动等多个业务.Gaea支持分库分表.sql路由.读写分离.连接池 ...
- thinkphp mysql 中文_耗时5天解决thinkphp连接mysql中文乱码的问题
坑大,或者不大,它就在那里,等着你进. 先前修改成熟的一个基于thinkphp3.1.2的后台框架,里面有我的autoCode,本来在新项目上不想再用这么落后的版本,但考虑到后台项目不对外使用,重点是 ...
- mac os mysql 命令_如何在Mac OS上安装“mysql”命令?
通常命令是: /usr/local/mysql/bin/mysql -u root -p 这将提示您输入root密码(除非您更改密码,否则可能为空) 您还可以使用: /usr/local/mysql/ ...
- react js 添加样式_如何在React JS Application中添加图像?
react js 添加样式 Hello! In this article, we will learn how to add images in React JS? I remember when I ...
- mysql接口测试_用python实现接口测试(四、操作MySQL)
一.MySQL简介 使用Python进行MySQL的库主要有三个,Python-MySQL(更熟悉的名字可能是MySQLdb),PyMySQL和SQLAlchemy. Python-MySQL资格最老 ...
- 将image存入mysql数据库_有谁知道如何把一图片存放到mysql数据库中
root@ytt:/var/lib/mysql-files# for i in `seq 1 100`; do cp 微信图片_20190711095019.jpg "$i".jp ...
- 进苹果商店显示无法连接服务器,苹果商店提示无法连接怎么回事_苹果商店打不开连接不上如何解决-win7之家...
当我们要在苹果手机中安装软件的时候,都会通过苹果商店中进行下载安装,可是近日由用户在进入苹果商店的时候,却提示无法连接,打不开也连接不上,遇到这样的问题是怎么回事呢?针对这个情况,本文给大家整理了苹果 ...
最新文章
- 微软职位内部推荐-SW Engineer II for WinCE
- 第十二届蓝桥杯JavaB组省赛H题 杨辉三角形
- angular语言前端开发_web前端开发入门全套学习方法路径,兼职在家做网站也能月入上万...
- 什么是MSTP(多业务传输平台)?
- 在LaTex中引用图片失败,出现(??)怎么办
- 简单的Java服务器和客户端的通信
- STL中algorithm里的查找
- 领扣(LeetCode)七进制数 个人题解
- 常用制图工具Visio-ProcessOn
- Linux系统蓝牙WiFi抓包命令
- Linux驱动开发之触摸驱动
- 初级会计资格-初级会计实务-知识点总结大全
- js实现数字的千分化
- Matplotlib绘图:plt?plt.subplots?plt.subplot?
- 现货跌期货涨(现货大涨期货就大涨吗)
- docker 创建redis容器
- CDN,高防IP接入报错504是为什么。解答方案一。
- mysql迅_迅搜(xunsearch) - 开源免费中文全文搜索引擎|PHP全文检索|mysql全文检索|站内搜索...
- python常用函数库
- 3.1.13.fcntl函数介绍
热门文章
- windows时间设置
- PLSQL提交带有模板的报表的方法
- 一个研究生毕业以后的人生规划(ZT)
- Flutter开发:在Flutter Plugin中引入aar——本地maven法
- cat的实用技巧 cat>>/etc/profile<<EOF
- html5怎么联网,HTML5--离线web应用
- c ringbuffer 源码_Python Ring Buffer的实现
- php utc时间_datetime - 以PHP格式获取UTC时间
- mysql限制数据类型的长度_MySQL数据类型的长度
- php excel parser pro v4.2,PHP Excel Parser Pro v4.2怎么用