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优化效率 提升性能解决方案
Sep 06 Javascript
无阻塞加载脚本分析[全]
Jan 20 Javascript
JS实现简单的Canvas画图实例
Jul 04 Javascript
js将字符串转成正则表达式的实现方法
Nov 13 Javascript
深入理解Javascript中的valueOf与toString
Jan 04 Javascript
bootstrap 点击空白处popover弹出框隐藏实例
Jan 24 Javascript
Element-ui table中过滤条件变更表格内容的方法
Mar 02 Javascript
vue 登录滑动验证实现代码
Aug 24 Javascript
详解vue开发中调用微信jssdk的问题
Apr 16 Javascript
通过js随机函数Math.random实现乱序
May 19 Javascript
原生JS封装拖动验证滑块的实现代码示例
Jun 01 Javascript
vue的$http的get请求要加上params操作
Nov 12 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实现图片上传时添加文字和图片水印技巧
2020/04/18 PHP
php 可变函数使用小结
2018/06/12 PHP
PHP二维索引数组的遍历实例分析【2种方式】
2019/06/24 PHP
PHP实现简易图形计算器
2020/08/28 PHP
JavaScript 异步调用框架 (Part 6 - 实例 & 模式)
2009/08/04 Javascript
20款非常优秀的 jQuery 工具提示插件 推荐
2012/07/15 Javascript
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
2012/10/11 Javascript
js数组去重的常用方法总结
2014/01/24 Javascript
jquery清空表单数据示例分享
2014/02/13 Javascript
XML文件转化成NSData对象的方法
2015/08/12 Javascript
js选择器全面解析
2016/06/27 Javascript
jQuery使用animate实现ul列表项相互飘动效果示例
2016/09/16 Javascript
JavaScript实现横线提示输入验证码随输入验证码输入消失的方法
2016/09/24 Javascript
js实现5秒倒计时重新发送短信功能
2017/02/05 Javascript
使用JavaScript实现一个小程序之99乘法表
2017/09/21 Javascript
Angular6中使用Swiper的方法示例
2018/07/09 Javascript
vue监听键盘事件的快捷方法【推荐】
2018/07/11 Javascript
vue axios数据请求及vue中使用axios的方法
2018/09/10 Javascript
nodejs微信开发之授权登录+获取用户信息
2019/03/17 NodeJs
uniapp实现横向滚动选择日期
2020/10/21 Javascript
vue实现禁止浏览器记住密码功能的示例代码
2021/02/03 Vue.js
[02:11]DOTA2上海特级锦标赛主赛事第二日RECAP
2016/03/04 DOTA
python使用pil进行图像处理(等比例压缩、裁剪)实例代码
2017/12/11 Python
Python制作动态字符图的实例
2019/01/27 Python
安装好Pycharm后如何配置Python解释器简易教程
2019/06/28 Python
window环境pip切换国内源(pip安装异常缓慢的问题)
2019/12/31 Python
解决Python中导入自己写的类,被划红线,但不影响执行的问题
2020/07/13 Python
解决pytorch 保存模型遇到的问题
2021/03/03 Python
编写用C语言实现的求n阶阶乘问题的递归算法
2014/10/21 面试题
优秀团员个人事迹材料
2014/01/29 职场文书
自主招生自荐信指南
2014/02/04 职场文书
《傅雷家书》教学反思
2014/04/20 职场文书
阅兵口号
2014/06/19 职场文书
董事长年会致辞
2015/07/29 职场文书
python爬虫--selenium模块
2021/03/31 Python
详解Redis主从复制实践
2021/05/19 Redis