文件中的多个架构不起作用
Posted
技术标签:
【中文标题】文件中的多个架构不起作用【英文标题】:Multiple schema in a file not working 【发布时间】:2018-11-30 17:28:12 【问题描述】:我在单个 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 不是函数
而如果我在文件中使用单个用户,它就可以工作。
我已经浏览了这个链接并像上面那样导出了
cant get data from database after multiple schema declared (mongoose + express + mongodb
但不工作
有什么想法吗?
谢谢
在@anthony 的帮助下,我解决了问题
我需要做以下事情
module.exports =
user: mongoose.model('user', user),,
Organizationn: mongoose.model('Organizationn', Organizationn)
;
【问题讨论】:
【参考方案1】:如果您导出的文件不止一个,则必须使用花括号 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()
【讨论】:
我不会导出多个文件,只是像变量这样的架构 好的,我找到了问题,但无论如何你的回答帮助我找出了问题 您正在尝试查询架构!您必须创建一个模型。查询是在 Model 实例上进行的,而不是 Schema。【参考方案2】:尝试以这种抽象的方式看待它:
mongoose.Schema 基本上只是一个对象。
mongoose.model 是您使用架构对象自定义的类。
换句话说,mongoose.model 拥有所有的数据库函数,而 schema 本身没有。
【讨论】:
以上是关于文件中的多个架构不起作用的主要内容,如果未能解决你的问题,请参考以下文章