nodeJs连接mysql数据库问题摘要(一)

摘要:

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",

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

匠造一知识

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值