首页 > 解决方案 > 文件中的多个架构不起作用

问题描述

我在单个 schema.js 文件中有两个架构

var mongoose = require('mongoose');  

var user = new mongoose.Schema({
  name: String,
  add: String,
  role: String
});

var Organizationn = new mongoose.Schema({
  name: String,
  add: String,
  name:String
});

module.exports = {
  user: user,
  Organizationn: Organizationn
};

像访问它

var models = require("../models/schema");
models.user.findOne()

它说 findone 不是函数

而如果我在文件中使用单个用户,它正在工作。

我已经通过这个链接并像上面那样导出

声明多个模式后无法从数据库中获取数据(mongoose + express + mongodb

但不工作

任何想法?

谢谢

在@anthony 的帮助下,我解决了问题

我需要执行以下操作

module.exports = {
  user: mongoose.model('user', user),,
  Organizationn: mongoose.model('Organizationn', Organizationn)
};

标签: node.jsmongodbexpressmongoose

解决方案


如果您导出多个文件,则必须使用花括号导入{ schema1 }

var mongoose = require('mongoose');  

var user = new mongoose.Schema({
  name: String,
  add: String,
  role: String
});

var organization = new mongoose.Schema({
  name: String,
  add: String,
  name:String
});

const userSchema = mongoose.model('users', user),
const organizationSchema = mongoose.model('organizations', organization)

module.exports = { User: userSchema, Organization: organizationSchema }

然后导入

var { User } = require("../models/schema");
var { Organization } = require("../models/schema");
User.findOne()
Organization.findOne()

推荐阅读