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 中介者模式实例
Dec 16 Javascript
JS+CSS实现可以凹陷显示选中单元格的方法
Mar 02 Javascript
JQuery.validate在ie8下不支持的快速解决方法
May 18 Javascript
js实现适合新闻类图片的轮播效果
Feb 05 Javascript
Vuejs实现带样式的单文件组件新方法
May 02 Javascript
微信小程序页面开发注意事项整理
May 18 Javascript
解决jQuery使用append添加的元素事件无效的问题
Aug 30 jQuery
全面解析vue router 基本使用(动态路由,嵌套路由)
Sep 02 Javascript
Element Input组件分析小结
Oct 11 Javascript
vue的keep-alive用法技巧
Aug 15 Javascript
微信小程序:报错(in promise) MiniProgramError
Oct 30 Javascript
适用于 Vue 的播放器组件Vue-Video-Player操作
Nov 16 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 伪造ip以及url来路信息方法汇总
2014/11/25 PHP
php实现粘贴截图并完成上传功能
2015/05/17 PHP
PHP利用Cookie设置用户30分钟未操作自动退出功能
2017/07/03 PHP
跨浏览器通用、可重用的选项卡tab切换js代码
2011/09/20 Javascript
javaScript面向对象继承方法经典实现
2013/08/20 Javascript
jquery跟js初始化加载的多种方法及区别介绍
2014/04/02 Javascript
JS实现网页滚动条感应鼠标变色的方法
2015/02/26 Javascript
JavaScript实现简单的数字倒计时
2015/05/15 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(一)
2016/05/17 Javascript
利用Jquery队列实现根据输入数量显示的动画
2016/09/01 Javascript
node.js 和HTML5开发本地桌面应用程序
2016/12/13 Javascript
vue.js之vue-cli脚手架的搭建详解
2017/05/05 Javascript
jQuery实现简单的计时器功能实例分析
2017/08/29 jQuery
JavaScript 跨域之POST实现方法
2018/05/07 Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
2019/10/23 Javascript
Angular 多级路由实现登录页面跳转(小白教程)
2019/11/19 Javascript
Vue 打包体积优化方案小结
2020/05/20 Javascript
python开发的小球完全弹性碰撞游戏代码
2013/10/15 Python
Python代码的打包与发布详解
2014/07/30 Python
Python编程二分法实现冒泡算法+快速排序代码示例
2018/01/15 Python
用python与文件进行交互的方法
2018/03/01 Python
Python3 chardet模块查看编码格式的例子
2019/08/14 Python
Python 图像对比度增强的几种方法(小结)
2019/09/25 Python
Flask中endpoint的理解(小结)
2019/12/11 Python
python学生管理系统的实现
2020/04/05 Python
jupyter notebook参数化运行python方式
2020/04/10 Python
css3设置box-pack和box-align让div里面的元素垂直居中
2014/09/01 HTML / CSS
美国最大的骑马用品零售商:HorseLoverZ
2017/01/12 全球购物
《鱼游到了纸上》教学反思
2014/02/20 职场文书
护理专业自荐信范文
2014/02/26 职场文书
坚定理想信念心得体会
2014/03/11 职场文书
航海技术专业毕业生求职信
2014/04/06 职场文书
环保倡议书格式范文
2014/05/14 职场文书
Python制作动态字符画的源码
2021/08/04 Python
Python用tkinter实现自定义记事本的方法详解
2022/03/31 Python
使用CSS实现按钮边缘跑马灯动画
2023/05/07 HTML / CSS