如何使用Node.js连接数据库

本文涉及的产品
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 在前面的文章中我们有手把手使用docker创建数据库,这里就直接沿用之前创建的数据库首先启动docker,把之前的mysql容器运行起来

创建数据库
在前面的文章中我们有手把手使用docker创建数据库,这里就直接沿用之前创建的数据库
首先启动docker,把之前的mysql容器运行起来
然后登入mysql客户端查看一下现有的数据库,以及user表
1.png

mysql
在前面我们已经使用mysql自带的客户端连接数据库进行一些操作,
到了node.js中我们可以用mysql这个npm包来连接mysql数据库,这个包也同样实现了mysql协议
首先安装一下依赖,
pnpm install mysql
复制代码
按照文档配置好连接数据库的参数
const mysql = require('mysql');
const connection = mysql.createConnection({
host: '127.0.0.1',
user: 'root',
password: 'password',
database: 'jym',
port: '2333',
});

connection.connect();

connection.query('SELECT * FROM Users', function (error, results, fields) {
if (error) throw error;
console.log('The solution is: ', results[0].solution);
});

connection.end();
复制代码
运行之后出现了下面这个错误,似乎是mysql这个npm包不支持mysql8导致的,具体可以查看这个issue

'Client does not support authentication protocol requested by server; consider upgrading MySQL client',

没办法,只能换一个npm包试试看了
pnpm uninstall mysql
pnpm install mysql2
复制代码
mysql2的语法和mysql那个基本一样
// get the client
const mysql = require('mysql2');

// create the connection to database
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
database: 'jym',
password: 'password'
});

connection.connect();

connection.query('SELECT * FROM user', function (error, results, fields) {
if (error) throw error;
console.log('The solution is: ', JSON.stringify(results));
});

connection.end();
复制代码
运行结果如下,可以看到下面的数据和上方使用mysql客户端查出来结果一致
The solution is: [{"name":"jym","age":"1"},{"name":"jym2","age":"2"},{"name":"jym3","age":"3"},{"name":"jym4","age":"4"}]
复制代码
通过mysql2这个包,我们就可以用node.js连接数据库了,可以使用一些基础的API来直接操作mysql数据库;比如上面的代码中就执行了'SELECT * FROM user'这个sql语句
除了使用这种基础库之外,我们还可以使用ORM(对象关系映射器)框架来连接数据库,直接用OOP的方式来编写模型和方法,ORM框架会帮助你生成对应的sql语句,这样就可以把关注点放在业务上面,而不用编写SQL语句。这可以让你的代码更加简洁和可维护
目前在nodejs中常用的ORM有prisma,sequlize,typeorm等等,下回我们就来尝试一下如何用ORM来连接数据库

作者:鱼露
链接:https://juejin.cn/post/7176269086698487864
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5天前
|
消息中间件 关系型数据库 Serverless
函数计算产品使用问题之如何通过vpc来连接rds数据库
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
7天前
|
Oracle 数据可视化 关系型数据库
Oracle数据库安装及使用Navicat连接oracle2
Oracle数据库安装及使用Navicat连接oracle
30 1
|
4天前
|
数据库连接 网络安全 Nacos
Nacos 的配置文件中修改了数据库的连接地址
Nacos 的配置文件中修改了数据库的连接地址
|
5天前
|
SQL 关系型数据库 MySQL
技术笔记:python连接mysql数据库
技术笔记:python连接mysql数据库
|
5天前
|
关系型数据库 MySQL 数据库
|
5天前
|
Java 关系型数据库 MySQL
连接MySQL数据库的最优JDBC代码
连接MySQL数据库的最优JDBC代码
|
6天前
|
NoSQL JavaScript MongoDB
Node.js 连接 MongoDB
Node.js 连接 MongoDB
10 0
|
27天前
|
前端开发
windows10 安装node npm 等前端环境 并配置国内源
windows10 安装node npm 等前端环境 并配置国内源
45 3
|
2月前
|
移动开发 JavaScript 前端开发
为了学习vue3,安装nvm进行node的多版本管理
为了学习vue3,安装nvm进行node的多版本管理
88 2