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 相关文章推荐
实现动画效果核心方式的js代码
Sep 27 Javascript
js判断上传文件的类型和大小示例代码
Oct 18 Javascript
js获得网页背景色和字体色的方法
Mar 21 Javascript
JS函数定义方式的区别介绍
Mar 22 Javascript
纯JS代码实现气泡效果
May 04 Javascript
浅谈JavaScript对象的创建方式
Jun 13 Javascript
jQuery简单实现中间浮窗效果
Sep 04 Javascript
js模块加载方式浅析
Aug 12 Javascript
vue cli 全面解析
Feb 28 Javascript
解决jquery的ajax调取后端数据成功却渲染失败的问题
Aug 08 jQuery
JS实现的RC4加密算法示例
Aug 16 Javascript
jQuery中each和js中forEach的区别分析
Feb 27 jQuery
基于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文件打开、关闭、写入的判断与执行代码
2011/05/24 PHP
php页面消耗内存过大的处理办法
2013/03/18 PHP
discuz加密解密函数使用方法和中文注释
2014/01/21 PHP
nginx下安装php7+php5
2016/07/31 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
2020/03/02 PHP
Gambit vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
IE 缓存策略的BUG的解决方法
2007/07/21 Javascript
一个简单的JavaScript 日期计算算法
2009/09/11 Javascript
基于jQuery的输入框无值自动显示指定数据的实现代码
2011/01/24 Javascript
jQuery右键菜单contextMenu使用实例
2011/09/28 Javascript
将Datatable转化成json发送前台实现思路
2013/09/06 Javascript
js读取配置文件自写
2014/02/11 Javascript
一个简单的全屏图片上下打开显示网页效果示例
2014/07/08 Javascript
javaScript中with函数用法实例分析
2015/06/08 Javascript
javascript实现随机读取数组的方法
2015/08/03 Javascript
Bootstrap源码解读下拉菜单(4)
2016/12/23 Javascript
详解Angular的内置过滤器和自定义过滤器【推荐】
2016/12/26 Javascript
微信小程序图表插件(wx-charts)实例代码
2017/01/17 Javascript
Bootstrap风格的zTree右键菜单
2017/02/17 Javascript
微信小程序新手教程之启动页的重要性
2019/03/03 Javascript
亲自动手实现vue日历控件
2019/06/26 Javascript
JS实现json数组排序操作实例分析
2019/10/28 Javascript
[01:00:13]完美世界DOTA2联赛 LBZS vs Forest 第一场 11.07
2020/11/09 DOTA
Python深入06——python的内存管理详解
2016/12/07 Python
Python系统监控模块psutil功能与经典用法分析
2018/05/24 Python
布隆过滤器的概述及Python实现方法
2019/12/08 Python
Python unittest工作原理和使用过程解析
2020/02/24 Python
PyTorch: Softmax多分类实战操作
2020/07/07 Python
SQL中where和having的区别
2012/06/17 面试题
android面试问题与答案
2016/12/27 面试题
物流专业大学生的自我鉴定
2013/11/13 职场文书
社区党员志愿服务活动方案
2014/08/18 职场文书
班子个人四风问题整改措施
2014/10/04 职场文书
2015教师节师德演讲稿
2015/03/19 职场文书
送给客户微信问候语!
2019/07/04 职场文书
幽默口才训练经典句子(48句)
2019/08/19 职场文书