使用Mongoose时,为什么在index.js中MongoDB不是必需的?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Mongoose时,为什么在index.js中MongoDB不是必需的?相关的知识,希望对你有一定的参考价值。

作为一个有抱负的开发人员,我在YouTube上观看有关猫鼬的视频,并注意到开发人员删除了需要MongoDB的MongoDB常量变量,并为Mongoose创建了一个。

他们说它是一个对象建模工具,所以如果它是MongoDB的工具,不应该在带有变量和路由器的文件中需要MongoDB变量吗?

我承认我作为一个初学者没有良好的后端知识,所以如果你能用非专业人的术语解释那将是很好的。

答案

由于mongoose是专门用于mongodb的ODM(对象文档映射器),因此只需要通过mongoose连接到mongo的特定数据库......其余的工作将由mongoose完成。 (在mongoose连接旁边仍然需要的唯一东西是你在背景中运行的mongo实例或者你正在使用的任何东西!)如果你想详细了解,请阅读Jamie Munro撰写的这篇文章 - > https://code.tutsplus.com/articles/an-introduction-to-mongoose-for-mongodb-and-nodejs--cms-29527 ..希望这有助于:)

Mongoose连接到mongodb

import mongoose from 'mongoose';

mongoose.Promise = global.Promise;
mongoose.set('useFindAndModify', false);

// mentioning url for specific mongo database along with the port
let DB_URL = 'mongodb://localhost:27017/db_name';

// creating a connection for mongoose to act to specific db
var connection =  mongoose.createConnection(DB_URL,{ useNewUrlParser: true });

// if error occurs, then create connection or else connect directly
try {
  mongoose.connect(DB_URL, { useNewUrlParser: true });
} catch (err) {
  mongoose.createConnection(constants.DB_URL);
}

// consoling the success message if connection is opened or else displaying error if error is present
mongoose.connection
  .once('open', () => console.log('MongoDB Running'))
  .on('error', e => {
    throw e;
  });

以上是关于使用Mongoose时,为什么在index.js中MongoDB不是必需的?的主要内容,如果未能解决你的问题,请参考以下文章

为啥在设置 Mongoose 连接时在 .then() 中使用 console.log() 时不打印?

Mongoose OverwriteModelError:编译后无法覆盖模型

Mongoose OverwriteModelError:编译后无法覆盖模型

无法修复猫鼬覆盖模型错误

无法修复猫鼬覆盖模型错误

为什么在mongoose中使用find方法时console.log返回空数组?