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下function声明一些小结
Dec 28 Javascript
javascript删除字符串最后一个字符
Jan 14 Javascript
jquery实现不同大小浏览器使用不同的css样式表的方法
Apr 02 Javascript
微信支付如何实现内置浏览器的H5页面支付
Sep 25 Javascript
javascript实现仿百度图片的瀑布流加载效果
Apr 20 Javascript
如何解决手机浏览器页面点击不跳转浏览器双击放大网页
Jul 01 Javascript
JavaScript定义函数的三种实现方法
Sep 23 Javascript
给vue项目添加ESLint的详细步骤
Sep 29 Javascript
js与jQuery实现获取table中的数据并拼成json字符串操作示例
Jul 12 jQuery
js实现弹出框的拖拽效果实例代码详解
Apr 16 Javascript
Vue.js中provide/inject实现响应式数据更新的方法示例
Oct 16 Javascript
解决vue页面刷新,数据丢失的问题
Nov 24 Vue.js
基于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数组循环操作详细介绍 附实例代码
2013/02/03 PHP
php实现将二维关联数组转换成字符串的方法详解
2017/07/31 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
PHP+Mysql分布式事务与解决方案深入理解
2021/02/27 PHP
js读取本地excel文档数据的代码
2010/11/11 Javascript
html+javascript实现可拖动可提交的弹出层对话框效果
2013/08/05 Javascript
浅析js中2个等号与3个等号的区别
2013/08/06 Javascript
获取下拉列表框的值是数组,split,$.inArray示例
2013/11/13 Javascript
javascript模拟地球旋转效果代码实例
2013/12/02 Javascript
关闭浏览器输入框自动补齐 兼容IE,FF,Chrome等主流浏览器
2014/02/11 Javascript
浅析Javascript中bind()方法的使用与实现
2016/05/30 Javascript
温习Javascript基础语法之词法结构
2016/05/31 Javascript
微信小程序picker组件下拉框选择input输入框的实例
2017/09/20 Javascript
Vue添加请求拦截器及vue-resource 拦截器使用
2017/11/23 Javascript
javascript 通过键名获取键盘的keyCode方法
2017/12/31 Javascript
Vue slot用法(小结)
2018/10/22 Javascript
微信开发之微信jssdk录音功能开发示例
2018/10/22 Javascript
详解50行代码,Node爬虫练手项目
2019/04/22 Javascript
JS开发常用工具函数(小结)
2019/07/04 Javascript
vue $set 给数据赋值的实例
2019/11/09 Javascript
[01:52]PWL S2开团时刻第四期——DOTA2成语故事
2020/12/03 DOTA
python 写入csv乱码问题解决方法
2016/10/23 Python
python多进程和多线程究竟谁更快(详解)
2017/05/29 Python
django之session与分页(实例讲解)
2017/11/13 Python
python多线程http压力测试脚本
2019/06/25 Python
详解淘宝H5 sign加密算法
2020/08/25 HTML / CSS
副董事长岗位职责
2014/04/02 职场文书
社区党风廉政建设调研报告
2015/01/01 职场文书
北京英语导游词
2015/02/12 职场文书
产品质量保证书范本
2015/02/27 职场文书
学校推普周活动总结
2015/05/07 职场文书
小学班主任培训心得体会
2016/01/07 职场文书
vue-cropper插件实现图片截取上传组件封装
2021/05/27 Vue.js
基于PostgreSQL/openGauss 的分布式数据库解决方案
2021/12/06 PostgreSQL
spring cloud eureka 服务启动失败的原因分析及解决方法
2022/03/17 Java/Android
详解Nginx的超时keeplive_timeout配置步骤
2022/05/25 Servers