使用Docker和Node.js开始使用MariaDB
多年来,[MariaDB]一直是开发人员使用的首选数据库解决方案。它是开源的、关系型的,因此有大量的开发者社区使用它来构建他们的应用程序的数据库。
此外,[MariaDB公司]提供高质量的企业级产品,使MariaDB走在了其他数据库供应商的前面。
同时,[MariaDB基金会]作为MariaDB社区代码的保管者和守护者,为MariaDB的成功做出了巨大贡献。
本文将为开发者提供一个关于MariaDB与[Docker]和[Node.js]的使用指南和平台。
前提条件
在对应用程序进行编码之前,需要具备以下条件。
- 对MariaDB和Docker命令的工作知识
- 安装了[MariaDB]客户端
- 安装了[Node.js]和NPM包
- 安装了桌面版[Docker]
设置一个MariaDB Docker容器
在成功下载和安装Docker之后,我们需要拉出[MariaDB服务器镜像]并创建一个容器。然后,在终端上,执行以下命令。
$ docker run -p 127.0.0.1:3306:3306 --name mariadbdemo -e MARIADB_ROOT_PASSWORD=Demo123@ -d mariadb:latest
上述命令将下载并创建一个MariaDB服务器容器,以连接并使用MariaDB客户端进行通信。
容器的名字是mariadbdemo ,Demo123@ ,是MariaDB根用户的密码。
注意,可以使用其他SQL客户端,但我们将使用MariaDB的最新版本,以保持本指南的简单和统一。
接下来,将通过在终端运行以下命令来连接MariaDB实例。
$ mariadb --host 127.0.0.1 -P 3306 --user root –pDemo123@
下面的屏幕将出现,这意味着我们已经成功连接到MariaDB实例。
下一步将是通过运行下面的命令创建一个新的数据库。
CREATE DATABASE demodb;
然后我们通过运行下面的命令创建一个新的表。
CREATE TABLE demodb.persons (Name VARCHAR(50));
最后,将插入几条记录,如下所示。
INSERT INTO demodb.persons VALUES ('Bob'), ('Alice'), ('Ben'), ('Mary');
用Node.js连接到MariaDB
随着MariaDB数据库的下载和安装。现在可以在一个新的Node.js应用程序中使用它了。
首先,我们创建一个新的目录,然后浏览到它。接下来,创建一个名为server.js 的新JavaScript文件,它将作为Node服务器的主要模块。
接下来将浏览到该目录并在终端执行以下命令。
$ npm init
人们可以填写出现的提示,或按回车键将其作为默认值,通过所有的选项。
一个package.json 文件将与server.js 文件在同一目录下自动生成。
注意,我们现在有一个可运行的Node应用程序。
接下来,我们将安装一个Express包,作为Node应用程序的网络框架。为了安装Express包,我们执行下面的命令。
$ npm install express
接下来,我们将安装一个MariaDB Node.js连接器。它将建立一个连接并与我们的MariaDB实例通信。
下面的命令将被用来安装MariaDB Node.js连接器。
$ npm install mariadb
现在,我们可以添加连接到MariaDB的代码。
首先,我们将创建一个新的可重复使用的模块文件,名称为db.js 。
db.js 模块将利用MariaDB Node.js连接器,使我们的应用程序能够连接到MariaDB并与之通信。
db.js 的代码将如下所示。
// here we import the mariadb
const mariadb = require('mariadb');
// here we create a new connection pool
const pool = mariadb.createPool({
host: "127.0.0.1",
user: "root",
password: "Demo123@",
database: "demodb"
});
// here we are exposing the ability to creating new connections
module.exports={
getConnection: function(){
return new Promise(function(resolve,reject){
pool.getConnection().then(function(connection){
resolve(connection);
}).catch(function(error){
reject(error);
});
});
}
}
注意避免将所有敏感的数据库连接细节直接暴露给我们的连接模块。相反,最好是使用dotenv变量来处理敏感的连接细节。
最后一步是创建一个Express端点,通过以下方式利用MariaDB Node.js连接器db.js
打开文件server.js ,并将以下代码粘贴到其中
const express = require('express');
const pool = require('./db');
const app = express();
const port = 5000;
// here we expose an endpoint "persons"
app.get('/persons', async (req, res) => {
let conn;
try {
// here we make a connection to MariaDB
conn = await pool.getConnection();
// create a new query to fetch all records from the table
var query = "select * from persons";
// we run the query and set the result to a new variable
var rows = await conn.query(query);
// return the results
res.send(rows);
} catch (err) {
throw err;
} finally {
if (conn) return conn.release();
}
});
app.listen(port, () => console.log(`Listening on port ${port}`));
最后,我们将通过在终端执行以下命令来运行Node应用程序。
$ node server.js
运行上述命令后,一个成功的消息将显示在控制台,即服务器已经启动,并且正在监听指定的端口。
测试
一旦Node项目被启动,我们可以通过执行一个请求来测试它。例如,我们可以执行以下curl命令。
$ curl http://localhost:5000/persons
上述命令返回以下JSON响应的有效载荷。
总结
截至目前,开发人员现在可以使用MariaDB与Node.js。MariaDB可以提供很多关于如何建立一个创新的数据库来创建现代应用程序。