模块导出 = 猫鼬模型在 NodeJs 中做什么

iRo*_*tia 8 javascript mongoose mongodb node.js express

我即将进入前端 React 世界,并且主要使用诸如导入和导出之类的语句。

我知道有很多文章强调了我们如何在 nodeJS 中使用导入和导出,我也知道这可能与导入和导出无关。

无论哪种方式,我都开始学习后端 (NodeJs) 和 mongoDB。

我正在使用 express 框架和包名 mongoose。

在模型内部,我们创建了一个像这样简单的模式

const mongoose = require('mongoose')

const bookSchema = new mongoose.Schema({
    name: String,
    genre: String, 
    authorID: String
})


module.exports = mongoose.model("Books", bookSchema)
Run Code Online (Sandbox Code Playgroud)

虽然我明白我们在上面做什么,在上面创建一个架构并导出,但我无法理解导出语句

module.exports = mongoose.model("Books", bookSchema)
Run Code Online (Sandbox Code Playgroud)

就像,我知道它确实导出了猫鼬模式,但是是mongoose.model什么/意味着什么?比如幕后?

Gré*_*EUT 5

根据文档

模型是从 Schema 定义编译的奇特构造函数。模型的实例称为文档。模型负责从底层 MongoDB 数据库创建和读取文档。


模式是数据的描述。模型代表您的收藏。您可以拥有多个具有相同Schema 的Model。要创建新文档或从数据库中获取文档,您需要使用Model


要使用您描述的模型:

js

// ...

module.exports = mongoose.model('Books', bookSchema)
Run Code Online (Sandbox Code Playgroud)

js

import Books from 'a.js';

// We create a new document and then save it in database    
const book = new Books({
  name: 'Harry potter',
  genre: 'drama',
  authorID: 'JK',
});

// Save is asynchronous and can fail
await book.save();
Run Code Online (Sandbox Code Playgroud)