“dbo”在MongoDB - Express应用程序中代表什么?

bfnvny8b  于 2022-12-12  发布在  Go
关注(0)|答案(3)|浏览(143)

下面是代码示例:
app.js

const express = require("express");
const app = express();
const cors = require("cors");
require("dotenv").config({ path: "./config.env" });
const port = process.env.PORT || 5000;
app.use(cors());
app.use(express.json());
app.use(require("./routes/record"));
// get driver connection
const dbo = require("./db/conn");
 
app.listen(port, () => {
  // perform a database connection when server starts
  dbo.connectToServer(function (err) {
    if (err) console.error(err);
 
  });
  console.log(`Server is running on port: ${port}`);
});

db/conn.js

const { MongoClient } = require("mongodb");
const Db = process.env.ATLAS_URI;
const client = new MongoClient(Db, {
  useNewUrlParser: true,
  useUnifiedTopology: true,
});
 
var _db;
 
module.exports = {
  connectToServer: function (callback) {
    client.connect(function (err, db) {
      // Verify we got a good "db" object
      if (db)
      {
        _db = db.db("employees");
        console.log("Successfully connected to MongoDB."); 
      }
      return callback(err);
         });
  },
 
  getDb: function () {
    return _db;
  },
};

我做了一些研究,它在SQL Server中代表“数据库所有者”,但在这里没有意义。
这些代码示例来自MongoDB official documentation,如果dbo真的代表数据库所有者,为什么他们将连接示例指定为dbo?

qojgxg4l

qojgxg4l1#

由于文档中没有解释变量名的选择,我们只能猜测。考虑到导出的类型,我最好的猜测是dbo代表数据库对象。

z0qdvdin

z0qdvdin2#

我认为这是模仿SQL世界的特殊用法,其中dbothe default schema,缩写为databaseowner
通常,在MongoClient文档中,我只看到db = require("./db/conn");,但在这里,作者的手指似乎只是习惯于在键入db后自动键入o
人类是习惯性的模仿者,我不会想太多,只是一个变量名而已。

kh212irz

kh212irz3#

nodejs中没有限制和内置参数名。
你可以根据自己的喜好使用它

相关问题