📜  在 Node.js 中创建 HTTP 服务器之前如何等待 MongoDB 连接?

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

在 Node.js 中创建 HTTP 服务器之前如何等待 MongoDB 连接?

将服务器连接到数据库是后端开发中一项非常重要的任务,因为数据库是存储用户提供的数据的位置,直到采取进一步行动。

如果我们在创建服务器之前未能连接到数据库,那么服务器正在处理的任何数据都不会存储在数据库中。因此,结果,由客户端插入的数据本质上不会持久化。

在本文中,我们将使用Node.js (更具体地说是使用 Express)创建一个服务器,并使用 mongoose ODM将我们的服务器连接到MongoDB数据库。

表示 是一个开源、最小且健壮的 Node.js Web 框架,用于构建 Web 应用程序和 API(应用程序编程接口)。

要在您的计算机上运行 express 服务器,请确保在您的系统中安装了 Node.js。要检查是否安装了 Node.js,请在终端中键入以下命令:

node -v

如果它显示了您系统中安装的 Node.js 版本,就像下面的屏幕截图一样继续下一步。

项目安装及文件夹结构:

步骤 1:在您的系统中创建一个单独的GFG文件夹,并使用命令提示符导航到该文件夹。

mkdir GFG & cd GFG

第 2 步:使用以下命令在文件夹中创建package.json文件:

npm init

第 3 步:在根目录中创建一个index.js文件,这是将启动服务器的文件。使用以下命令安装expressmongoose包:

npm install express mongoose

步骤 4:在根目录下创建一个connect.js文件,该文件将用于编写有关数据库连接的代码。

项目结构:它看起来像这样。创建 connect.js 和 index.js 文件,如下所示。

服务器初始化及数据库连接过程:

如果本地系统中未安装 MongoDB,请点击此链接。使用以下命令创建一个名为DEMO_DB的数据库(根据您的智慧命名):

use DEMO_DB

我们将在本文中使用 mongoose,它是 Node.js 的ODM(对象文档映射器) 。要了解更多信息,请点击此链接。现在在各自的文件中写下以下代码。

connect.js
const mongoose = require("mongoose");
  
const connectDB = (URL) => {
    return mongoose.connect(URL, {
        useNewUrlParser: true,
        useUnifiedTopology: true,
    });
};
  
module.exports = connectDB;


index.js
const Express = require("express");
const connectDB = require("./connect");
const app = Express();
  
const PORT = 8000;
  
// Basic route for testing
app.get("/", (req, res) => {
    res.send("welcome to the server.");
});
  
const start = async () => {
    try {
        await connectDB("mongodb://localhost:27017/DEMO_DB");
        app.listen(PORT, () => {
            console.log(`Server is running on port ${PORT}.`);
        });
    } catch (error) {
        console.log(error);
        console.log("Failed to connect to the database, 
            server is not running.");
    }
};
  
start();


index.js

const Express = require("express");
const connectDB = require("./connect");
const app = Express();
  
const PORT = 8000;
  
// Basic route for testing
app.get("/", (req, res) => {
    res.send("welcome to the server.");
});
  
const start = async () => {
    try {
        await connectDB("mongodb://localhost:27017/DEMO_DB");
        app.listen(PORT, () => {
            console.log(`Server is running on port ${PORT}.`);
        });
    } catch (error) {
        console.log(error);
        console.log("Failed to connect to the database, 
            server is not running.");
    }
};
  
start();

运行应用程序的步骤:在终端中使用(Ctrl+C)命令停止正在运行的服务器,然后使用以下命令重新启动服务器:

node index.js

输出:打开浏览器并输入http://localhost:8000 ,我们将得到以下响应。

如果这是我们得到的响应,那么数据库已经正确连接到服务器,因为它已经创建。