摘要:
1⃣️ mysql 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。
2⃣️ nodeJs
Node.js 是一个开源与跨平台的 JavaScript 运行时环境。 它是一个可用于几乎任何项目的流行工具!
Node.js 在浏览器外运行 V8 JavaScript 引擎(Google Chrome 的内核)。 这使 Node.js 表现得非常出色。
Node.js 应用程序运行于单个进程中,无需为每个请求创建新的线程。 Node.js 在其标准库中提供了一组异步的 I/O 原生功能(用以防止 JavaScript 代码被阻塞),并且 Node.js 中的库通常是使用非阻塞的范式编写的(从而使阻塞行为成为例外而不是规范)。
当 Node.js 执行 I/O 操作时(例如从网络读取、访问数据库或文件系统),Node.js 会在响应返回时恢复操作,而不是阻塞线程并浪费 CPU 循环等待。
这使 Node.js 可以在一台服务器上处理数千个并发连接,而无需引入管理线程并发的负担(这可能是重大 bug 的来源)。
Node.js 具有独特的优势,因为为浏览器编写 JavaScript 的数百万前端开发者现在除了客户端代码之外还可以编写服务器端代码,而无需学习完全不同的语言。
在 Node.js 中,可以毫无问题地使用新的 ECMAScript 标准,因为不必等待所有用户更新其浏览器,你可以通过更改 Node.js 版本来决定要使用的 ECMAScript 版本,并且还可以通过运行带有标志的 Node.js 来启用特定的实验中的特性。
3⃣️ 如何连接数据库,这是一个简单而复杂性的工程( 至于为什么这样说,刚开始接触的人肯定知道,哈哈! )
下面我介绍一下,关于nodejs 作为服务端如何与数据库进行交互通讯的以及在这个过程中所会遇到的问题!
首先,你要有自己的nodejs 服务:(如何创建一个启动简单的nodejs服务端)
# 我提前安装koa 的框架 轻巧极简 的一个框架;当然,你不要忘了基础搭建哦!😯
$ nvm install 7
$ npm i koa
$ node my-koa-app.js
# 复制到 文件内部,执行启动 nodemon app.js
# 当然,我们的nodejs 服务肯定就放在app.js 如下代码:
const Koa = require('koa');
const app = new Koa();
app.use(async ctx => {
ctx.body = 'Hello World';
});
app.listen(3000);
ps:如何创建一个服务的nodejs服务不在这里过多讨论,如果感兴趣可以私下相互讨论交流……
在node服务下安装引用 mysql 服务中间件插件(npm install mysql --save )当然我们引入插件后肯定要配合着,启动一下我们的mysql 服务;哈哈,是不是在想,这个数据库怎么启动呢!不用担心我给你们准备里服务端下载哦,所以继续看下去……
第二步:启动 MYSQL server 数据库服务
下载mysql 压缩包(ps:本人用的是压缩包,遇到的问题也是这个原因之一)
第三步:nodejs 服务端连接mysql服务
mysql_config.js文件
module.exports = {
host: 'localhost',
user: 'root',
password: '此处填写数据库密码',
database: '此处填写数据库名',
port: 3306,
charset: 'utf8mb4' // 支持emoji存储
}
创建数据库pool 连接池 query.js 文件
# 引入 数据库
const mysql = require('mysql');
# 存储的mysql配置文件位置
const MYSQL_CONFIG = require('../config/mysqlConfig.js');
# 创建 pool 池子对象 用来操作(连接,创建,查询 删除 改变 数据库)
const pool = mysql.createPool(MYSQL_CONFIG);
# 用promise封装 创建数据库连接池
const query = (sql, val) => {
return new Promise((resolve, reject) => {
pool.getConnection((err, connection) => {
if (err) reject(err)
else {
connection.query(sql, val, (err, res) => {
if (err) reject(err)
else resolve(res);
connection.release()
})
}
})
})
}
# 导出 数据库这个连接对象
module.exports = { query }
app.js文件
let koa= require('koa')
let mysql = require('mysql');
let query = {
host : 'localhost',
user : "root",
password : "123456",
database : "nodemysql",
}