📜  Express.js 中的数据库集成

📅  最后修改于: 2022-05-13 01:56:38.460000             🧑  作者: Mango

Express.js 中的数据库集成

Express 是一个与 Node.js 一起工作的简约框架,并提供了运行后端服务器等的显着功能。如您所知,数据库在完整工作的应用程序中发挥着至关重要的作用,以持久化数据。在本文中,我们将讨论如何将数据库集成到基于 Express.js 框架的服务器中。

第 1 步:创建 Express 应用程序

在这里,我们将创建一个 express 应用程序,因为我们所有的工作都将在 express 内部执行。如果您对这些东西感到满意,则可以跳过此步骤。

在终端中编写这些命令以启动节点应用程序,然后安装 express。确保您已成功安装 npm。 npm init会询问您有关项目的一些配置,这非常容易提供。

npm init
npm install express

现在创建一个空的 .js 文件(我们将其命名为app.js ),这将是我们的文件夹结构,

所以,我们准备开始在这个 app.js 文件中编写 express 代码

Javascript
//Importing express module
const express = require('express');
 
const app = express();
const PORT = 3000;
 
app.listen(PORT, (error) =>{
    if(!error)
        console.log("Server is Successfully Running, "
            + "and App is listening on port "+ PORT)
    else
        console.log("Error occurred, server can't start", error);
    }
);


Javascript
//Importing modules
const express = require('express');
const mongoose = require('mongoose');
 
const app = express();
const PORT = 3000;
//Connection to the mongodb database
mongoose.connect('mongodb://localhost:27017/ExpressIntegration')
.then(()=>{
    app.listen(PORT, ()=>{
        console.log("Database connection is Ready "
        + "and Server is Listening on Port ", PORT);
    })
})
.catch((err)=>{
    console.log("A error has been occurred while"
        + " connecting to database.");   
})


Javascript
//Importing modules
const express = require('express');
const mysql = require('mysql');
 
const app = express();
const PORT = 3000;
 
// Create a connection to the database
const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'yourpassword',
  database: "ExpressIntegration"       
});
 
// open the MySQL connection
connection.connect(error => {
    if (error){
        console.log("A error has been occurred "
            + "while connecting to database.");       
        throw error;
    }
     
    //If Everything goes correct, Then start Express Server
    app.listen(PORT, ()=>{
        console.log("Database connection is Ready and "
             + "Server is Listening on Port ", PORT);
    })
});


注意:如果您想了解有关快速应用程序初始化的更多信息,请查看此链接。

第二步:运行服务器

在这一步中,我们将确认我们的服务器是否正常工作,在您的终端中写入此命令以启动快速服务器。服务器成功启动表示我们的 express 应用已准备好监听指定路径上的连接(在我们的示例中为localhost:3000 )。

node app.js

类似这样的内容将在终端中显示给您。

第 3 步:集成数据库

这是您正在搜索的最有趣的部分,现在我们将数据库与 express 集成。但在此之前,我们必须选择其中一种数据库选项,即 MongoDB、MySQL、PostgreSQL、Redis、SQLite 和 Cassandra 等。
MongoDB 和 MySQL 是最受欢迎和被众多开发人员使用的,因此我们将只讨论这两个。此外,它们完全不同,因此您将有机会探索更多,一个是面向文档的 NoSQL 数据库,另一个是关系模型数据库。

注意:- 使用云数据库服务还是本地主机取决于您,只有细微差别。了解如何访问云数据库是一件好事,所以这里我们也将讨论一个云服务的示例。

MongoDB

  • 安装mongoose,一个基于 `mongodb` 原生驱动程序构建的包,用于与 MongoDB 实例交互并对来自 express/node 应用程序的数据进行建模。
npm install mongoose
  • 安装 MongoDB

无论您是 Linux、Windows 还是 Mac 用户,官方文档都提供了在本地机器上安装 MongoDB 的简单过程。
单击此处进行安装:- Windows | Ubuntu | macOS |其他

安装后,您将能够在终端中使用 MongoDB,也可以安装 mongo compass 一个 GUI 应用程序来与数据库交互。

  • 与快递应用程序集成

说明:-首先我们将导入mongoose模块,然后我们调用 connect 方法,它接受一个连接字符串,以及带有一些配置的对象,连接字符串中写入的“ExpressIntegration”是数据库的随机名称,其余的所有东西都在语法之下。这个方法提供了一个承诺作为回报,这就是我们使用 then 和 catchs 块的原因。与数据库成功连接后,它将使用 app 对象调用 listen to 方法来启动快速服务器,否则将简单地执行控制台登录失败。

文件名:app.js

Javascript

//Importing modules
const express = require('express');
const mongoose = require('mongoose');
 
const app = express();
const PORT = 3000;
//Connection to the mongodb database
mongoose.connect('mongodb://localhost:27017/ExpressIntegration')
.then(()=>{
    app.listen(PORT, ()=>{
        console.log("Database connection is Ready "
        + "and Server is Listening on Port ", PORT);
    })
})
.catch((err)=>{
    console.log("A error has been occurred while"
        + " connecting to database.");   
})

输出:使用` node app.js`命令启动服务器,这将在终端输出,这意味着我们可以成功集成MongoDB数据库。

访问云服务
去 mongodb.com 自己注册/登录,然后查看 mongodb 云,然后你会看到这样的东西,

在这里单击连接,然后它会询问一些配置,例如您是否要将云数据库用于 mongo shell、应用程序或 Mongo Compass(GUI)。我们将选择连接您的应用程序。稍后它会询问您有关驱动程序和版本的信息,请选择 node.js 和最新版本。
最后,它将提供一个字符串,用于将此数据库集成到一个快速服务器中。它还提供了一个 Web 用户界面来监视和配置数据库。
现在只需简单地用这个替换较早的 localhost字符串。有了这一切,您的云数据库就可以使用了。

MySQL

  • 为 express/node 应用程序安装 mysql 驱动程序。
npm install mysql
  • 安装 MySQL

在使用本地数据库之前,您应该在本地系统中安装 mysql,继续下面给出的 MySQL 官方链接,他们提供了一个简单的安装过程。
单击此处进行安装:- Windows | Linux |苹果系统

安装后,您将能够在终端上使用 MySQL 数据库,也可以使用任何 GUI(如 PHPMyAdmin 和 MySQL 工作台等)与数据库交互。

  • 与快递应用程序集成

说明:-首先我们将导入mysql模块,然后 createConnection 方法对数据库进行一些配置,并为我们提供一个连接对象作为回报。此连接对象将用于调用连接应用程序与数据库的连接方法,并在连接失败时提供错误对象,在连接成功时提供线程ID。此连接将在程序完成执行或连接调用 end 方法(即connection.end() )时终止。
连接成功后,我们调用 express 应用的 listen 方法来启动服务器。

文件名:app.js

Javascript

//Importing modules
const express = require('express');
const mysql = require('mysql');
 
const app = express();
const PORT = 3000;
 
// Create a connection to the database
const connection = mysql.createConnection({
  host: 'localhost',
  user: 'root',
  password: 'yourpassword',
  database: "ExpressIntegration"       
});
 
// open the MySQL connection
connection.connect(error => {
    if (error){
        console.log("A error has been occurred "
            + "while connecting to database.");       
        throw error;
    }
     
    //If Everything goes correct, Then start Express Server
    app.listen(PORT, ()=>{
        console.log("Database connection is Ready and "
             + "Server is Listening on Port ", PORT);
    })
});

输出:使用` node app.js`命令启动服务器,这将在终端输出,这意味着我们可以成功集成MySQL数据库。

访问云服务
有很多服务提供商可以合作,这里我将使用简单的 Clever-Cloud MySQL 托管。单击此处继续访问网站,然后自行注册/登录,然后查看网站的控制台。你会看到这样的东西,

  • 单击个人空间,然后单击创建。现在,选择一个插件,然后从插件列表中选择 MySQL。它将提示输入数据库的名称,提供您想要的任何内容,然后选择区域。
  • 最后,单击下一步,现在它将提供数据库凭据,在您的快速应用程序中使用这些凭据来访问此数据库,您还可以导出环境变量以避免执行此复制粘贴操作。 Clever-Cloud 还提供了一个带有 PHPMyAdmin 的 Web 用户界面,因此您可以轻松配置和管理您的数据库。
  • 现在只需将写入传递给 createConnection 方法的对象中的数据替换为智能云提供的数据和凭据,您将能够访问该数据库。

注意:您可能已经注意到,我们只是在成功连接数据库后才连接到 express 服务器,这只是一个约定,因为应用程序只有在每个服务器都运行时才能正常工作。尽管没有人阻止您在数据库连接之后或之前启动服务器

结论:现在我们已经成功地将数据库与快递应用程序集成在一起。您可以对数据库执行任何允许的操作,以实现您的快速应用程序的目的。如果您在任何步骤中遇到困难,请查看官方文档并搜索您的查询以获得支持。本文中使用的所有技术都有良好的社区支持,因此可能有人已经回答了您当前所看到的问题。
这些是本文下一步应该访问的链接,MongoDB 中的 CRUD 和 MYSQL 中的基本查询。