node.js - 文件中的多个架构不起作用
问题描述
我在单个 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)
};
解决方案
如果您导出多个文件,则必须使用花括号导入{ 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()
推荐阅读
- bash - 如果安装了应用程序,则 bash 别名运行,但如果未安装,则运行其他内容
- java - 使用Java中定义的变量从字符串执行代码
- c# - 从数组中删除重复项时出现超出范围异常
- botframework - MS Teams 任务模块在移动客户端打开,但不在 Web 和桌面上打开
- linux - Linux 如何获取 max_hw_sectors_kb 值?
- python-import - 无法导入气流包
- angular - Router.navigate 未在 Angular 中加载整个页面内容
- android - Android 键盘覆盖 Qml TextField
- wpf - WPF:MVVM:将用户控件内部的选定项绑定到文本框
- python - TWS API-两个python问题