博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Node.js]操作mysql
阅读量:5860 次
发布时间:2019-06-19

本文共 2824 字,大约阅读时间需要 9 分钟。

摘要

上篇文章介绍了node.js操作redis的简单实例,这里介绍如何操作mysql。

安装

安装mysql模块

cnpm install mysql

一个例子

新建一个mysql.js的文件,代码如下:

连接配置

  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的配置文件

mysql的操作

创建数据表

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();

结果

//改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语句相似。不再一一举例。

参考文章

转载于:https://www.cnblogs.com/wolf-sun/p/6898713.html

你可能感兴趣的文章
微服务架构组件分析
查看>>
Mongodb数据的导出与导入
查看>>
在SAP UI中使用纯JavaScript显示产品主数据的3D模型视图
查看>>
前端编码规范之:样式(scss)编码规范
查看>>
python 设计模式-适配器模式
查看>>
【Leetcode】82. 删除排序链表中的重复元素 II
查看>>
vue_music:排行榜rank中top-list.vue中样式的实现:class
查看>>
修改校准申请遇到的问题
查看>>
第一天·浏览器内核及Web标准
查看>>
Java版本兼容问题
查看>>
【DL-CV】浅谈GoogLeNet(咕咕net)
查看>>
【许晓笛】详解 EOS 的新共识机制 BFT-DPoS
查看>>
python大佬养成计划----win下对数据库的操作
查看>>
前端每日实战:125# 视频演示如何用纯 CSS 创作一个失落的人独自行走的动画...
查看>>
聊聊spring-data-redis的连接池的校验
查看>>
Swoole 源码分析——基础模块之Queue队列
查看>>
Nginx实践篇(4)- Nginx代理服务 - 正向代理和反向代理
查看>>
从0开发豆果美食小程序——项目搭建
查看>>
【译】WebSocket协议第二章——一致性要求(Conformance Requirements)
查看>>
Sublime Text3全局搜索/在文件夹中查找默认排除node_modules目录,Sublime小技巧——吕江民·敬上...
查看>>