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 相关文章推荐
JavaScript获取客户端计算机硬件及系统等信息的方法
Jan 02 Javascript
js设置cookie过期当前时间减去一秒相当于立即过期
Sep 04 Javascript
JavaScript定义类和对象的方法
Nov 26 Javascript
jQuery中dequeue()方法用法实例
Dec 29 Javascript
jQuery之DOM对象和jQuery对象的转换与区别分析
Jan 08 Javascript
JS实现漂亮的窗口拖拽效果(可改变大小、最大化、最小化、关闭)
Oct 10 Javascript
JavaScript DOM 对象深入了解
Jul 20 Javascript
详解angular中的作用域及继承
May 31 Javascript
使用webpack打包后的vue项目如何正确运行(express)
Oct 26 Javascript
JS异步错误捕获的一些事小结
Apr 26 Javascript
jQuery pager.js 插件动态分页功能实例分析
Aug 02 jQuery
Angular 中使用 FineReport不显示报表直接打印预览
Aug 21 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+MySQL 制作简单的留言本
2009/11/02 PHP
YII Framework教程之异常处理详解
2016/03/14 PHP
[原创]php常用字符串输出方法分析(echo,print,printf及sprintf)
2016/07/09 PHP
php实现简单的守护进程创建、开启与关闭操作
2019/08/13 PHP
一个多次搜索+多次传值的解决方案
2007/01/20 Javascript
Jquery中Ajax 缓存带来的影响的解决方法
2011/05/19 Javascript
使用jquery实现select添加实现后台权限添加的效果
2011/05/28 Javascript
简单的jquery拖拽排序效果实现代码
2011/09/20 Javascript
各种页面定时跳转(倒计时跳转)代码总结
2013/10/24 Javascript
JS小功能(onmouseover实现选择月份)实例代码
2013/11/28 Javascript
Javascript 构造函数详解
2014/10/22 Javascript
jQuery的框架介绍
2016/05/11 Javascript
javascript检测移动设备横竖屏
2016/05/21 Javascript
Angular路由简单学习
2016/12/26 Javascript
简述JS浏览器的三种弹窗
2018/07/15 Javascript
Nuxt项目支持eslint+pritter+typescript的实现
2019/05/20 Javascript
原生javascript运动函数的封装示例【匀速、抛物线、多属性的运动等】
2020/02/23 Javascript
Postman环境变量全局变量使用方法详解
2020/08/13 Javascript
vue仿携程轮播图效果(滑动轮播,下方高度自适应)
2021/02/11 Vue.js
python数据结构之二叉树的建立实例
2014/04/29 Python
Python 多核并行计算的示例代码
2017/11/07 Python
python获取代理IP的实例分享
2018/05/07 Python
flask框架视图函数用法示例
2018/07/19 Python
python实现的MySQL增删改查操作实例小结
2018/12/19 Python
python正则表达式匹配[]中间为任意字符的实例
2018/12/25 Python
在PyCharm的 Terminal(终端)切换Python版本的方法
2019/08/02 Python
python多进程下的生产者和消费者模型
2020/05/07 Python
详解python安装matplotlib库三种失败情况
2020/07/28 Python
python实现xml转json文件的示例代码
2020/12/30 Python
荷兰天然和有机产品网上商城:BigGreenSmile.nl
2020/07/26 全球购物
教学大赛获奖感言
2014/01/15 职场文书
社会稳定风险评估方案
2014/06/02 职场文书
党校党性分析材料
2014/12/19 职场文书
2015年店长个人工作总结
2015/10/23 职场文书
反邪教教育心得体会
2016/01/15 职场文书
辞职信怎么写?你都知道吗?
2019/06/24 职场文书