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 相关文章推荐
地址栏上的一段语句,改变页面的风格。(教程)
Apr 02 Javascript
jQuery.fn和jQuery.prototype区别介绍
Oct 05 Javascript
jQuery处理xml格式的返回数据(实例解析)
Nov 28 Javascript
jQuery使用addClass()方法给元素添加多个class样式
Mar 26 Javascript
js实现精确到秒的倒计时效果
May 29 Javascript
手机端转换rem适应
Apr 01 Javascript
微信小程序三级联动地址选择器的实例代码
Jul 12 Javascript
浅谈Webpack下多环境配置的思路
Jun 27 Javascript
使用js实现将后台传入的json数据放在前台显示
Aug 06 Javascript
JS中数据结构之栈
Jan 01 Javascript
基于Vue中使用节流Lodash throttle详解
Oct 30 Javascript
vue项目配置使用flow类型检查的步骤
Mar 18 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+oracle 分页类
2006/10/09 PHP
一个简易需要注册的留言版程序
2006/10/09 PHP
php仿QQ验证码的实例分析
2013/07/01 PHP
php开启与关闭错误提示适用于没有修改php.ini的权限
2014/10/16 PHP
php删除文本文件中重复行的方法
2015/04/28 PHP
php查询内存信息操作示例
2019/05/09 PHP
ExtJs扩展之GroupPropertyGrid代码
2010/03/05 Javascript
基于Jquery与WebMethod投票功能实现代码
2011/01/19 Javascript
查看图片(前进后退)功能实现js代码
2013/04/24 Javascript
HTML5之lang属性与dir属性的详解
2013/06/19 Javascript
浅析onsubmit校验表单时利用ajax的return false无效问题
2013/07/10 Javascript
js string 转 int 注意的问题小结
2013/08/15 Javascript
javascript 闭包详解
2015/02/15 Javascript
javascript实现2016新年版日历
2016/01/25 Javascript
Jquery组件easyUi实现手风琴(折叠面板)示例
2016/08/23 Javascript
JS 实现Base64编码与解码实例详解
2016/11/07 Javascript
谈谈JavaScript中浏览器兼容问题的写法小议
2016/12/17 Javascript
nodejs对express中next函数的一些理解
2017/09/08 NodeJs
Vue.js划分组件的方法
2017/10/29 Javascript
swiper动态改变滑动内容的实现方法
2018/01/17 Javascript
Vue.js 实现微信公众号菜单编辑器功能(一)
2018/05/08 Javascript
element-ui组件table实现自定义筛选功能的示例代码
2019/03/15 Javascript
Vue父组件监听子组件生命周期
2020/09/03 Javascript
Python短信轰炸的代码
2020/03/25 Python
使用python无账号无限制获取企查查信息的实例代码
2020/04/17 Python
python3.8.1+selenium实现登录滑块验证功能
2020/05/22 Python
Python中bisect的用法及示例详解
2020/07/20 Python
一款纯css3实现的tab选项卡的实列教程
2014/12/11 HTML / CSS
POP文化和音乐灵感的时尚:Hot Topic
2019/06/19 全球购物
Marc O’Polo俄罗斯官方在线商店:德国高端时尚品牌
2019/12/26 全球购物
潘多拉珠宝俄罗斯官方网上商店:PANDORA俄罗斯
2020/09/22 全球购物
自我鉴定书面格式
2014/01/13 职场文书
高三自我评价
2014/02/01 职场文书
新春联欢会主持词
2014/03/24 职场文书
学校党员个人问题整改措施思想汇报
2014/10/08 职场文书
MySQL日期时间函数知识汇总
2022/03/17 MySQL