Node 连接mysql数据库
时间:2022-06-05
本文章向大家介绍Node 连接mysql数据库,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
JXcore作者已经不维护了。
github地址 https://github.com/jxcore/jxcore
所以下面是Node.js连接Mysql
Node.js 连接Mysql
使用的内容作者依旧在维护
安装
PS C:UsersmingmDesktoptest> npm install mysql --save
npm WARN saveError ENOENT: no such file or directory, open 'C:UsersmingmDesktoptestpackage.json'
npm WARN enoent ENOENT: no such file or directory, open 'C:UsersmingmDesktoptestpackage.json'
npm WARN test No description
npm WARN test No repository field.
npm WARN test No README data
npm WARN test No license field.
+ mysql@2.16.0
updated 1 package and audited 296 packages in 2.366s
found 0 vulnerabilities
PS C:UsersmingmDesktoptest>
npm地址 https://www.npmjs.com/package/mysql
github 地址 https://github.com/mysqljs/mysql
文档地址 https://www.npmjs.com/package/mysql#install 查看一些文档的时候需要在这里查看
连接数据库
由于本地已经有mysql了。
PS C:UsersmingmDesktoptest> node test.js
The solution is: 2
var mysql = require('mysql');
var connection = mysql.createConnection({
host: 'student.iming.info', // 连接的服务器
user: 'root', // 用户名
password: '********', // 用户密码
database: 'ming' // 选择的库
});
connection.connect(); // 创建一个mysql的线程
connection.query('SELECT 1 + 1 AS solution', (err, results, fields) => {
if (err) {
throw err;
};
console.log('The solution is:', results[0].solution); // 返回第一条记录的solution列的内容
});
好啦。这就完成了一次连接,使用的是npm下载的mysql模块,使用的是c++语言编写的
数据库操作
PS C:UsersmingmDesktoptest> 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://weibo.com/',
alexa: 20,
country: 'CN' },
RowDataPacket {
id: 5,
name: 'Facebook',
url: 'https://www.facebook.com/',
alexa: 3,
country: 'USA' } ]
--------------------------------
var mysql = require('mysql');
var connection = mysql.createConnection({
host: 'student.iming.info', // 连接的服务器
user: 'root', // 用户名
password: '******************', // 用户密码
database: 'ming' // 选择的库
});
connection.connect(); // 创建一个mysql的线程
// 推荐查询语句使用大写。方便分辨和后期的维护
var sql = 'SELECT * FROM websites'; // sql命令
connection.query(sql, (err, results, fields) => { // results 为查询的结果 fields 为返回的信息
if (err) {
console.log('[SELECT ERROR] -', err.message);
return;
};
console.log('------------SELECT-------------');
console.log(results); // 输出查询的结果
console.log('--------------------------------');
});
下面该是数据库的原子操作了。即CULD
插入数据
PS C:UsersmingmDesktoptest> node test.js
------------------INSERT--------------------------
INSERT ID OkPacket {
fieldCount: 0,
affectedRows: 1,
insertId: 6,
serverStatus: 2,
warningCount: 0,
message: '',
protocol41: true,
changedRows: 0 }
-------------------------------------------------
PS C:UsersmingmDesktoptest>
var mysql = require('mysql');
var connection = mysql.createConnection({
host: 'student.iming.info', // 连接的服务器
user: 'root', // 用户名
password: '*******************', // 用户密码
database: 'ming' // 选择的库
});
connection.connect(); // 创建一个mysql的线程
var addSql = 'INSERT INTO websites(id, name, url, alexa, country) VALUES(0, ?, ?, ?, ?)'; // 创建一个通用的sql,并预留出填补的空位
var addSqlParams = ['mySoul', 'https://www.iming.info', '0000000', 'CN'];
connection.query(addSql, addSqlParams, (err, result) => {
if(err){
console.log('[INSERT ERROR] -', err.message);
return;
}
console.log('------------------INSERT--------------------------')
console.log('INSERT ID', result);
console.log('-------------------------------------------------nn');
});
登陆数据库查看
mysql> select * from websites;
+----+----------+---------------------------+-------+---------+
| id | name | url | alexa | country |
+----+----------+---------------------------+-------+---------+
| 1 | Google | https://www.google.cm/ | 1 | USA |
| 2 | 淘宝 | https://www.taobao.com/ | 13 | CN |
| 3 | 微博 | http://weibo.com/ | 20 | CN |
| 5 | Facebook | https://www.facebook.com/ | 3 | USA |
| 6 | mySoul | https://www.iming.info | 0 | CN |
+----+----------+---------------------------+-------+---------+
5 rows in set (0.02 sec)
mysql>
很明显已经插入完成
亲,如果数据库ID设置了自动递增,即使用了AUTO_INCREMENT,建议使用自增,因为数据库索引是B+树的加快查询速度。所以一般都设置自增序列
关于JSON 因为数据通信是使用JSON的,所以两个方法,一个JSON转对象 JSON.parse 对象转JSON JSON.stringify
在加上一个node的框架Express,即可完成和浏览器的交互,这样就完成一个web服务器的搭建
删除数据
var mysql = require('mysql');
var connection = mysql.createConnection({
host: 'student.iming.info', // 连接的服务器
user: 'root', // 用户名
password: '*********************', // 用户密码
database: 'ming' // 选择的库
});
connection.connect(); // 创建一个mysql的线程
var delSql = 'DELETE FROM websites WHERE id=6';
connection.query(delSql, (err, result) => {
if(err) {
console.log('[DELETE ERROR] -', err.message);
return;
}
console.log('------------DELETE------------------');
console.log('DELETE affectedRows', result);
console.log('------------------------------------');
})
connection.end();
PS C:UsersmingmDesktoptest> node test.js
------------DELETE------------------
DELETE affectedRows OkPacket {
fieldCount: 0,
affectedRows: 1,
insertId: 0,
serverStatus: 2,
warningCount: 0,
message: '',
protocol41: true,
changedRows: 0 }
------------------------------------
PS C:UsersmingmDesktoptest>
博客
www.iming.info
- [不定期更新]简单的shell脚本练习实例
- 超简单的MySQL主从复制配置步骤
- 解决Centos下vsftp无法上传文件的问题,附vsftp配置详解
- 为iFrame添加动态载入效果,提高用户体验
- 分享超炫的表白页面和爱的纪念日源码
- 分享WordPress Mobile Pack汉化精简版及隐藏指定插件更新提示的方法
- Tomcat重启脚本For Windows
- js获取url中?后的参数,修复移动版无法切换到电脑版的BUG
- nginx配置文件参数详解
- LVS中Windows作为真实主机(RealServer)时的设置方法
- 菜鸟教程:Ngnix安装详解
- 教你如何去掉友荐和无觅的隐藏外链和版权链接
- 重置多说配置后的问题,这是不让我从良的节奏啊(附禁用谷歌在线字体的方法)!
- 10个超有趣的Linux命令
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 5分钟学linux命令之split
- 分母为0一定会抛异常吗?
- 明明有class为什么还是报ClassNotFoundException?
- Maven 错误找不到符号
- 环境变量配置为jdk8,却显示java版本为jdk7
- Python脚本按照当前日期创建多级目录
- linux常用的读取文件内容指令
- Executors.newSingleThreadScheduledExecutor();线程池中放入多个线程问题
- SqlServer批量删除表
- java 获取一天内crontab任务执行的时间点
- Python自学成才之路 魔术方法之一元,二元运算符
- Python自学成才之路 魔术方法之打印对象实例
- Python自学成才之路 装饰器必用的wraps注解
- Python自学成才之路 使用函数作为装饰器
- Python自学成才之路 装饰器编程之初试装饰器