node.js操作mysql简单实例


Posted in Javascript onMay 25, 2017

上篇文章介绍了node.js操作redis的简单实例,这里介绍如何操作mysql。

安装

安装mysql模块

cnpm install mysql
node.js操作mysql简单实例

一个例子

新建一个mysql.js的文件,代码如下:

node.js操作mysql简单实例

连接配置

1.host:主机地址 (默认:localhost)
2.user:用户名
3.password:密码
4.port:端口号 (默认:3306)
5.database:数据库名
6.charset:连接字符集(默认:'UTF8_GENERAL_CI',注意字符集的字母都要大写)
7.localAddress:此IP用于TCP连接(可选)
8.socketPath:连接到unix域路径,当使用 host 和 port 时会被忽略
9.timezone:时区(默认:'local')
10.connectTimeout:连接超时(默认:不限制;单位:毫秒)
11.stringifyObjects:是否序列化对象(默认:'false' ;与安全相关https://github.com/felixge/node-mysql/issues/501)
12.typeCast:是否将列值转化为本地JavaScript类型值 (默认:true)
13.queryFormat:自定义query语句格式化方法 https://github.com/felixge/node-mysql#custom-format
14.supportBigNumbers:数据库支持bigint或decimal类型列时,需要设此option为true (默认:false)
15.bigNumberStrings:supportBigNumbers和bigNumberStrings启用 强制bigint或decimal列以JavaScript字符串类型返回(默认:false)
16.dateStrings:强制timestamp,datetime,data类型以字符串类型返回,而不是JavaScript Date类型(默认:false)
17.debug:开启调试(默认:false)
18.multipleStatements:是否许一个query中有多个MySQL语句 (默认:false)
19.flags:用于修改连接标志,更多详情:https://github.com/felixge/node-mysql#connection-flags
20.ssl:使用ssl参数(与crypto.createCredenitals参数格式一至)或一个包含ssl配置文件名称的字符串,目前只捆绑Amazon RDS的配置文件

创建数据表

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for users
-- ----------------------------
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
 `Id` int(11) NOT NULL AUTO_INCREMENT,
 `CreateTime` datetime NOT NULL,
 `Header` varchar(255) DEFAULT NULL,
 `NickName` varchar(255) DEFAULT NULL,
 `Sex` int(11) NOT NULL,
 PRIMARY KEY (`Id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
//引入mysql模块
var mysql = require("mysql");
//创建连接
var connection = mysql.createConnection({
  host: "localhost",
  port: "3306",
  user: "root",
  password: "abcd",
  database: "it_odd_o",
});
//开始连接
connection.connect(function (err) {
  if (err) {
    console.log("[connect] - " + err);
    return;
  } else {
    console.log("connection connect successed!");
  };
});
//执行sql语句
connection.query("select 1+1 as result", function (err, rows, fields) {
  if (err) {
    console.log("[query] - " + err);
  } else {
    console.log("result is " + rows[0].result);
  };
});
//向user表中插入数据
var userAddSql = "insert into users(createTime,header,nickName,sex) value(now(),?,?,1);";
var userAddSql_params = ["1.jpg", "wolfy"];
//执行sql语句
connection.query(userAddSql, userAddSql_params, function (err, result) {
  if (err) {
    console.log("[insert] - " + err);
  } else {
    console.log(result);    
  };
});
//断开连接
connection.end();
结果

node.js操作mysql简单实例

node.js操作mysql简单实例

//改
var userUpdateSql="update users set header=? where id=?;";
var userUpdateSql_params=["2.jpg",2];
connection.query(userUpdateSql, userUpdateSql_params, function (err, result) {
  if (err) {
    console.log("[update] - " + err);
  } else {
    console.log(result);    
  };
});
总结

通过上面的例子我们看到起主要作用还是sql语句以及参数化查询,其他的跟sql语句相似。不再一一举例。

Javascript 相关文章推荐
jquery lazyload延迟加载技术的实现原理分析
Jan 24 Javascript
你需要知道的10个最佳javascript开发实践小结
Apr 15 Javascript
jQuery列表拖动排列具体实现
Nov 04 Javascript
jQuery1.9.1针对checkbox的调整方法(prop)
May 01 Javascript
一个JavaScript用逗号分割字符串实例
Sep 22 Javascript
JavaScript操作Cookie方法实例分析
May 27 Javascript
PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
Aug 06 Javascript
基于jQuery实现淡入淡出效果轮播图
Jul 31 Javascript
详解Angular4中路由Router类的跳转navigate
Jun 09 Javascript
layui.js实现的表单验证功能示例
Nov 15 Javascript
jquery引入外部CDN 加载失败则引入本地jq库
May 23 jQuery
Vue实现验证码功能
Dec 03 Javascript
基于vue实现swipe分页组件实例
May 25 #Javascript
Javascript 实现匿名递归的实例代码
May 25 #Javascript
Kotlin学习第一步 kotlin语法特性
May 25 #Javascript
jQuery Masonry瀑布流布局神器使用详解
May 25 #jQuery
jQuery模拟实现天猫购物车动画效果实例代码
May 25 #jQuery
jquery.masonry瀑布流效果
May 25 #jQuery
Node.js操作redis实现添加查询功能
May 25 #Javascript
You might like
一个PHP的String类代码
2010/04/20 PHP
PHP如何抛出异常处理错误
2011/03/02 PHP
php 利用array_slice函数获取随机数组或前几条数据
2015/09/30 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
2015/11/09 PHP
php基于mcrypt_encrypt和mcrypt_decrypt实现字符串加密解密的方法
2016/07/12 PHP
PHP substr()函数参数解释及用法讲解
2017/11/23 PHP
Referer原理与图片防盗链实现方法详解
2019/07/03 PHP
js实现window.open不被拦截的解决方法汇总
2014/10/30 Javascript
jQuery实现图片上传和裁剪插件Croppie
2015/11/29 Javascript
JavaScript程序设计之JS调试
2015/12/09 Javascript
jQuery多选框选择数量限制方法
2017/02/08 Javascript
详解Angular2响应式表单
2017/06/14 Javascript
JavaScript实现时间表动态效果
2017/07/15 Javascript
ui-router中使用ocLazyLoad和resolve的具体方法
2017/10/18 Javascript
React组件重构之嵌套+继承及高阶组件详解
2018/07/19 Javascript
JS实现拼图游戏
2021/01/29 Javascript
详解在IDEA中将Echarts引入web两种方式(使用js文件和maven的依赖导入)
2020/07/11 Javascript
vue组件添加事件@click.native操作
2020/10/30 Javascript
[22:20]初生之犊-TI4第5名LGD战队纪录片
2014/08/13 DOTA
Python星号*与**用法分析
2018/02/02 Python
python利用微信公众号实现报警功能
2018/06/10 Python
python得到windows自启动列表的方法
2018/10/14 Python
Python把对应格式的csv文件转换成字典类型存储脚本的方法
2019/02/12 Python
使用python写的opencv实时监测和解析二维码和条形码
2019/08/14 Python
解决python运行启动报错问题
2020/06/01 Python
python中pivot()函数基础知识点
2021/01/03 Python
夜大自我鉴定
2013/10/31 职场文书
工商管理专业应届生求职信
2013/11/04 职场文书
班长自荐书范文
2014/02/11 职场文书
工伤事故赔偿协议书
2014/04/15 职场文书
“向国旗敬礼”主题班会活动设计方案
2014/09/27 职场文书
交通事故协议书范本
2014/11/18 职场文书
2014年幼儿园班级工作总结
2014/12/17 职场文书
2015年入党积极分子评语
2015/03/26 职场文书
2015年世界无烟日活动方案
2015/05/04 职场文书
学生乘坐校车安全责任书
2015/05/11 职场文书