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解析XML的方法
Sep 05 Javascript
做web开发 先学JavaScript
Dec 12 Javascript
JS实现自适应高度表单文本框的方法
Feb 25 Javascript
完美解决IE不支持Data.parse()的问题
Nov 24 Javascript
jQuery中ajax错误调试分析
Dec 01 Javascript
详解PHP中pathinfo()函数导致的安全问题
Jan 05 Javascript
Vue中的ref作用详解(实现DOM的联动操作)
Aug 21 Javascript
浅谈微信小程序之官方UI框架we-ui使用教程
Aug 20 Javascript
vue cli安装使用less的教程详解
Jul 12 Javascript
适合前端Vue开发童鞋的跨平台Weex的使用详解
Oct 16 Javascript
js实现转动骰子模型
Oct 24 Javascript
Vue中的this.$options.data()和this.$data用法说明
Jul 26 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
PHP5 字符串处理函数大全
2010/03/23 PHP
php精确的统计在线人数的方法
2015/10/21 PHP
PHP开发中常用的十个代码样例
2016/02/02 PHP
PHP实现一个多功能购物网站的案例
2017/09/13 PHP
PHP实现登录验证码校验功能
2018/05/17 PHP
PHP fprintf()函数用法讲解
2019/02/16 PHP
js TextArea的选中区域处理
2010/12/28 Javascript
jquery 多行文本框(textarea)高度变化
2013/07/03 Javascript
jQuery操作CheckBox的方法介绍(选中,取消,取值)
2014/02/04 Javascript
JS获取及设置TextArea或input文本框选择文本位置的方法
2015/03/24 Javascript
利用jQuery对无序列表排序的简单方法
2016/10/16 Javascript
BootStrap实现带关闭按钮功能
2017/02/15 Javascript
React-router v4 路由配置方法小结
2017/08/08 Javascript
jQuery菜单实例(全选,反选,取消)
2017/08/28 jQuery
关于Vue组件库开发详析
2018/07/01 Javascript
nodejs遍历文件夹下并操作HTML/CSS/JS/PNG/JPG的方法
2018/11/01 NodeJs
微信小程序实现文字从右向左无限滚动
2020/11/18 Javascript
arctext.js实现文字平滑弯曲弧形效果的插件
2019/05/13 Javascript
vue指令v-html使用过滤器filters功能实例
2019/10/25 Javascript
jQuery实现推拉门效果
2020/10/19 jQuery
关于JavaScript中异步/等待的用法与理解
2020/11/18 Javascript
Vue实现简单购物车功能
2020/12/13 Vue.js
[05:09]2016国际邀请赛中国区预选赛淘汰赛首日精彩回顾
2016/06/29 DOTA
使用Python脚本对Linux服务器进行监控的教程
2015/04/02 Python
matplotlib subplots 设置总图的标题方法
2018/05/25 Python
python 缺失值处理的方法(Imputation)
2019/07/02 Python
python删除列表元素的三种方法(remove,pop,del)
2019/07/22 Python
马来西亚最大的电器网站:Senheng
2017/10/13 全球购物
美国电力供应商店/电气批发商:USESI
2018/10/12 全球购物
Hush Puppies澳大利亚官网:舒适的男女休闲和正装鞋
2019/08/24 全球购物
解释DataSet(ds) 和 ds as DataSet 的含义
2014/07/27 面试题
2014年大学生就业规划书
2014/04/04 职场文书
工程部文员岗位职责
2015/02/04 职场文书
2017大学生寒假社会实践心得体会
2016/01/14 职场文书
教师实习自我鉴定总结
2019/08/20 职场文书
创业计划书之美容店
2019/09/16 职场文书