首页 > 解决方案 > 如何在 MongoDB 中管理连接

问题描述

我正在从我的 Node.js 连接到 MongoDB。

如果我从 app.js 文件开始连接,那么我是否需要从另一个 JavaScript 文件再次连接,例如:从我的模型文件夹之一?

这是我的 database.js 代码:

const mongodb = require("mongodb");

const MongoClient = mongodb.MongoClient;

const mongoConnect = callback => {
  MongoClient
    .connect("mongodb+srv://<user>:<password>@node.idgpt.mongodb.net/myFirstDatabase?retryWrites=true&w=majority", {useUnifiedTopology: true})
    .then(client => {
      console.log("CONNECTED!!!");
      callback(client);
    })
    .catch(err => {
      console.log(err);
    });
}

module.exports = mongoConnect;

这是我的 app.js 代码:

const path = require('path');

const express = require('express');
const bodyParser = require('body-parser');

const errorController = require('./controllers/error');
const mongoConnect = require('./util/database');

const app = express();

app.set('view engine', 'ejs');
app.set('views', 'views');

const adminRoutes = require('./routes/admin');

app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, 'public')));

mongoConnect(() => {
    app.listen(3000);
});

所以,我的问题是:每次我想执行 CRUD 操作时,是否需要通过 mongoConnect 函数连接到 MongoDB?例如:如果我想从models文件夹中的另一个文件插入数据,我是否需要先连接到MongoDB然后执行插入操作,因为我已经先从我的app.js连接到MongoDB,然后我开始监听到我的节点服务器。

注意:我已分别用 <user> 和 <password> 替换了我的用户名和密码。

标签: node.jsmongodbexpress

解决方案


提供示例代码以获得更多见解。

但是如果你在一个文件中连接,你可以在许多文件中需要这个文件,它总是相同的连接。


推荐阅读