ylbtech-Node.js:连接 MySQL
1.返回顶部
1、

Node.js 连接 MySQL

本章节我们将为大家介绍如何使用 Node.js 来连接 MySQL,并对数据库进行操作。

如果你还没有 MySQL 的基本知识,可以参考我们的教程:MySQL 教程。

本教程使用到的 Websites 表 SQL 文件:websites.sql。

安装驱动

本教程使用了淘宝定制的 cnpm 命令进行安装:

$ cnpm install mysql

连接数据库

在以下实例中根据你的实际配置修改数据库用户名、及密码及数据库名:

test.js 文件代码:

var mysql      = require('mysql');
var connection = mysql.createConnection({host     : 'localhost',user     : 'root',password : '123456',database : 'test'
});connection.connect();connection.query('SELECT 1 + 1 AS solution', function (error, results, fields) {if (error) throw error;console.log('The solution is: ', results[0].solution);
});

执行以下命令输出就结果为:

$ node test.js
The solution is: 2

数据库连接参数说明:

参数 描述
host 主机地址 (默认:localhost)
  user 用户名
  password 密码
  port 端口号 (默认:3306)
  database 数据库名
  charset 连接字符集(默认:'UTF8_GENERAL_CI',注意字符集的字母都要大写)
  localAddress 此IP用于TCP连接(可选)
  socketPath 连接到unix域路径,当使用 host 和 port 时会被忽略
  timezone 时区(默认:'local')
  connectTimeout 连接超时(默认:不限制;单位:毫秒)
  stringifyObjects 是否序列化对象
  typeCast 是否将列值转化为本地JavaScript类型值 (默认:true)
  queryFormat 自定义query语句格式化方法
  supportBigNumbers 数据库支持bigint或decimal类型列时,需要设此option为true (默认:false)
  bigNumberStrings supportBigNumbers和bigNumberStrings启用 强制bigint或decimal列以JavaScript字符串类型返回(默认:false)
  dateStrings 强制timestamp,datetime,data类型以字符串类型返回,而不是JavaScript Date类型(默认:false)
  debug 开启调试(默认:false)
  multipleStatements 是否许一个query中有多个MySQL语句 (默认:false)
  flags 用于修改连接标志
  ssl 使用ssl参数(与crypto.createCredenitals参数格式一至)或一个包含ssl配置文件名称的字符串,目前只捆绑Amazon RDS的配置文件

更多说明可参见:https://github.com/mysqljs/mysql


数据库操作( CURD )

在进行数据库操作前,你需要将本站提供的 Websites 表 SQL 文件websites.sql 导入到你的 MySQL 数据库中。

本教程测试的 MySQL 用户名为 root,密码为 123456,数据库为 test,你需要根据自己配置情况修改。

查询数据

将上面我们提供的 SQL 文件导入数据库后,执行以下代码即可查询出数据:

查询数据

var mysql  = require('mysql');  var connection = mysql.createConnection({     host     : 'localhost',       user     : 'root',              password : '123456',       port: '3306',                   database: 'test',
}); connection.connect();var  sql = 'SELECT * FROM websites';
//查
connection.query(sql,function (err, result) {if(err){console.log('[SELECT ERROR] - ',err.message);return;}console.log('--------------------------SELECT----------------------------');console.log(result);console.log('------------------------------------------------------------\n\n');
});connection.end();

执行以下命令输出就结果为:

$ node test.js
--------------------------SELECT---------------------------- [ RowDataPacket { id: 1, name: 'Google', url: 'https://www.google.cm/', alexa: 1, country: 'USA' }, RowDataPacket { id: 2, name: '淘宝', url: 'https://www.taobao.com/', alexa: 13, country: 'CN' }, RowDataPacket { id: 3, name: '菜鸟教程', url: 'http://www.runoob.com/', alexa: 4689, country: 'CN' }, RowDataPacket { id: 4, name: '微博', url: 'http://weibo.com/', alexa: 20, country: 'CN' }, RowDataPacket { id: 5, name: 'Facebook', url: 'https://www.facebook.com/', alexa: 3, country: 'USA' } ] ------------------------------------------------------------

插入数据

我们可以向数据表 websties 插入数据:

插入数据

var mysql  = require('mysql');  var connection = mysql.createConnection({     host     : 'localhost',       user     : 'root',              password : '123456',       port: '3306',                   database: 'test',
}); connection.connect();var  addSql = 'INSERT INTO websites(Id,name,url,alexa,country) VALUES(0,?,?,?,?)';
var  addSqlParams = ['菜鸟工具', 'https://c.runoob.com','23453', 'CN'];
//增
connection.query(addSql,addSqlParams,function (err, result) {if(err){console.log('[INSERT ERROR] - ',err.message);return;}        console.log('--------------------------INSERT----------------------------');//console.log('INSERT ID:',result.insertId);        console.log('INSERT ID:',result);        console.log('-----------------------------------------------------------------\n\n');
});connection.end();

执行以下命令输出就结果为:

$ node test.js
--------------------------INSERT---------------------------- INSERT ID: OkPacket { fieldCount: 0, affectedRows: 1, insertId: 6, serverStatus: 2, warningCount: 0, message: '', protocol41: true, changedRows: 0 } -----------------------------------------------------------------

执行成功后,查看数据表,即可以看到添加的数据:

更新数据

我们也可以对数据库的数据进行修改:

更新数据

var mysql  = require('mysql');  var connection = mysql.createConnection({     host     : 'localhost',       user     : 'root',              password : '123456',       port: '3306',                   database: 'test',
}); connection.connect();var modSql = 'UPDATE websites SET name = ?,url = ? WHERE Id = ?';
var modSqlParams = ['菜鸟移动站', 'https://m.runoob.com',6];
//改
connection.query(modSql,modSqlParams,function (err, result) {if(err){console.log('[UPDATE ERROR] - ',err.message);return;}        console.log('--------------------------UPDATE----------------------------');console.log('UPDATE affectedRows',result.affectedRows);console.log('-----------------------------------------------------------------\n\n');
});connection.end();

执行以下命令输出就结果为:

--------------------------UPDATE----------------------------
UPDATE affectedRows 1 -----------------------------------------------------------------

执行成功后,查看数据表,即可以看到更新的数据:

删除数据

我们可以使用以下代码来删除 id 为 6 的数据:

删除数据

var mysql  = require('mysql');  var connection = mysql.createConnection({     host     : 'localhost',       user     : 'root',              password : '123456',       port: '3306',                   database: 'test',
}); connection.connect();var delSql = 'DELETE FROM websites where id=6';
//删
connection.query(delSql,function (err, result) {if(err){console.log('[DELETE ERROR] - ',err.message);return;}        console.log('--------------------------DELETE----------------------------');console.log('DELETE affectedRows',result.affectedRows);console.log('-----------------------------------------------------------------\n\n');
});connection.end();

执行以下命令输出就结果为:

--------------------------DELETE----------------------------
DELETE affectedRows 1 -----------------------------------------------------------------

执行成功后,查看数据表,即可以看到 id=6 的数据已被删除:

2、
2.返回顶部
3.返回顶部
4.返回顶部
5.返回顶部
1、
http://www.runoob.com/nodejs/nodejs-mysql.html
2、
6.返回顶部
作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载于:https://www.cnblogs.com/storebook/p/8717219.html

Node.js:连接 MySQL相关推荐

  1. Node.js 连接 MySQL 并进行数据库操作 –node.js 开发指南

    Node.js是一套用来编写高性能网络服务器的JavaScript工具包 通常在NodeJS开发中我们经常涉及到操作数据库,尤其是 MySQL ,作为应用最为广泛的开源数据库则成为我们的首选,本篇就来 ...

  2. node.js连接MySQL操作及注意事项

    node.js作为服务端的js运行环境已经出现了有几年了,最近我有个朋友也在做这方面的开发,但是也是刚刚接触,遇到了很多坑.前几天他们在操作数据库的时候出现了点问题,后来我们一起看了看,其实都是nod ...

  3. Node.js笔记-node.js连接MySQL与增删改查

    最近在看一个开源项目,项目用的是node.js,在此学习下他的连接mysql与增删改查. 安卓mysql包: npm install mysql 程序运行截图如下: D:\node\content\n ...

  4. 运用node.js连接MySQL数据库

    1.首先,必须下载node.js,有node环境 2.在你所选文件夹终端中执行 npm install mysql安装MySQL模块 3.创建一个js文件(执行以下代码) // 1. 导入 mysql ...

  5. 二十九、Node.js连接Mysql和MongoDB数据库CURD操作

    @Author:Runsen @Date:2020/6/10 人生最重要的不是所站的位置,而是内心所朝的方向.只要我在每篇博文中写得自己体会,修炼身心:在每天的不断重复学习中,耐住寂寞,练就真功,不畏 ...

  6. Node.js 连接 MySQL 插入 TEXT 类型报错问题

    由于开发需要存储大量文本(其实是一个结构化对象字符串),考虑到 char 以及 varchar 都不够大,所以打算用 TEXT 类型,顺便记一下 TEXT.MEDIUMTEXT 以及 LONGTEXT ...

  7. Node.js 连接 MySQL 并进行数据库操作

    Node.js是一套用来编写高性能网络服务器的JavaScript工具包 代码片段(6) [代码] 安装 node-mysql view source print? 1 $ npm install m ...

  8. Node.js连接MySQL

    将提供的 Websites 表 SQL 文件websites.sql 导入到 MySQL 数据库中. 发现问题: 在本地数据库路径中找到,有:C:\ProgramData\MySQL\MySQL Se ...

  9. 前端到全栈 -- js连接MYSQL数据库

    前端到全栈–node.js连接MYSQL数据库 前置条件: 安装node环境 安装mysql数据库 这里建议使用webstorm来写js 1.创建一个文件夹(这里以server为文件夹名举例),在命令 ...

  10. 跟李宁老师做项目:小程序版网上商城(Node.js + Express + MySQL)-李宁-专题视频课程...

    跟李宁老师做项目:小程序版网上商城(Node.js + Express + MySQL)-8799人已学习 课程介绍         本课程采用的技术包括小程序开发.Node.js.Express和M ...

最新文章

  1. uva1507(状态压缩+dfs)
  2. php trim用法,php trim函数怎么用?
  3. BZOJ 2301 - Problem b(莫比乌斯反演+容斥)
  4. 横岗无线充android,史上第一款“真无线充”,真正实现随时随地无线充电!
  5. 你有过什么令你难忘的约会经历?
  6. iOS 又出重大Bug!一秒搞崩 iPhone 的网络连接功能
  7. 视频|光学3D测量技术原理及应用
  8. signature=0fa666ae90cad1ed3ef6de6b7db4e5a3,A meta-analysis on correlations of
  9. 高仿国美在线 顶部实现
  10. 又一个新概念——云编程(Cloud programming)
  11. 软件测试黑马程序员课后答案_(完整版)软件测试技术基础课后习题答案
  12. 车载以太网第二弹 | 测试之实锤-IOP测试实践
  13. 包裹侠查快递单号_包裹侠快递查询
  14. 微信小程序,引入WeUI组件库 扩展组件库
  15. javascript高级编程教程,javascript基础入门案例
  16. 10种方法帮助网络管理员管理和维护网络
  17. oracle 与赛门铁克,赛门铁克Oracle启动Veritas数据中心认证
  18. Android端适老化与无障碍改造
  19. 微信小程序打卡活动实现PHP,微信小程序实现打卡日历功能
  20. FFmpeg源代码简单分析-通用-avio_open2()

热门文章

  1. 什么是持续集成(CI)/持续部署(CD)?
  2. 快速得到容器ID和veth bridge interface的关系
  3. 安全应急响应工作中易犯的5大错误
  4. java 利用时间生成主键
  5. 框架-数据库定义MD5加密
  6. 正在发生的景象--从大众消费到圈层经济
  7. NO.128 开发团队篇:参加项目计划会议,分解任务,领取任务,每天更新任务。...
  8. LINUX修改网卡MAC地址
  9. php new mpdf,php – PDF不合并大于使用mPDF的PDF-1.5版本
  10. python法则_python复数及计算法则