在多个文件中使用 Mongoose Schema (mongoose)

Posted

技术标签:

【中文标题】在多个文件中使用 Mongoose Schema (mongoose)【英文标题】:Use Mongoose Schema in Multiple Files (mongoose) 【发布时间】:2021-04-09 08:11:48 【问题描述】:

我有两个文件我想在其中使用我的权限架构。但是我得到一个无法覆盖“示例”模型一旦编译错误。

问题:如何在我的两个 js 路由文件中使用我的权限架构?

这是我的问题(示例):

权限架构:

const mongoose = require("mongoose");
const Schema = mongoose.Schema;

const AccessSchema = new Schema(
  listId:  type: String, required: true ,
  author:  type: Boolean, requried: true,
  completed: type: Boolean, required: true,
);
const accessSchema = mongoose.model("access", AccessSchema);

const UserPermissionsSchema = new Schema(
  uID:  type: String, required: true ,
  access: [AccessSchema],
);
const userPermissionsSchema = mongoose.model("permissions", UserPermissionsSchema);

module.exports =  //Am I exporting wrong?
  Access: accessSchema,
  Permissions: userPermissionsSchema,
;

File1 - 用户路由:

const router = require("express").Router();
const User = require("../models/user");
const  Permissions  = require("../models/permissions"); //first use

router.post("/users", (req, res) => 
  Permissions.findOne(,).then(() => )
  Users.findOne(,).then(() => )
);


module.exports = router;

File2 - 物品路径:

const router = require("express").Router();
const Permissions = require("../models/permissions"); //second use

router.post("/users", (req, res) => 
  Permissions.findOne(, ).then(() => )
);

module.exports = router;

我是否要求和/或导出错误?是否可以在多个文件中使用模式?

【问题讨论】:

代码似乎正确。您的错误令人困惑。 是的,出于某种原因,只需要猫鼬修复它。 【参考方案1】:

我找到了答案,我一整天都忽略了它,因为它为什么要修复它毫无意义......

无论如何,解决方法是添加:

var mongoose = require("mongoose");
var Schema = mongoose.Schema;
到所有使用该架构的文件。同样,我不知道为什么会这样修复它,但确实如此。

【讨论】:

以上是关于在多个文件中使用 Mongoose Schema (mongoose)的主要内容,如果未能解决你的问题,请参考以下文章

使用 mongoose 在 mongodb 中保存多个字段数组

Mongoose 创建多个索引并个性化 quety 以使用特定索引调用

规范化 MongoDB/Mongoose,以简化 GraphQL Schema?

文件中的多个架构不起作用

具有多个子路径的猫鼬填充路径

mongoose Schema 的变化没有反映