1
2つのスキーマが同じファイル内にある場合は、[AccountSchema]で参照できます。あなたはUserSchemaの "accounts"プロパティでそれを見ることができます。Mongoose:別のファイルにある入れ子になったスキーマをどのように参照できますか?
import express from 'express'
import mongoose from 'mongoose'
const Schema = mongoose.Schema
import Account from './accounts'
let AccountSchema = new Schema ({
accountName: {
type: String,
trim: true,
required: true,
unique: [true, "You already have an account with this name."],
},
percent: {
type: Number,
min: 1,
max: 100,
required: true
},
isGoal: {
type: Boolean,
default: false
},
accountHistory: {
type: Array
}
})
let UserSchema = new Schema ({
username: {
type: String,
unique: [true, "This username is taken."],
trim: true,
},
email: {
type: String,
unique: [true, "This email is already being used."],
trim: true
},
password: {
type: String,
trim: true
},
infusions: {
type: Array,
timestamps: true
},
accounts: {
type: [AccountSchema],
count: {
type: Number,
default: 8
}
},
secretToken: {
type: String
},
active: {
type: Boolean,
default: false
},
isAdmin: {
type: Boolean,
default: false
}
}, {
timestamps: true,
})
const User = mongoose.model('users', UserSchema)
export default User
しかし、スキーマが別々のファイルにある場合はどうしますか?どのようにそれらを参照できますか?私はこのようにしようとしたが、それはうまくいきませんでした:
// account.js
import express from 'express'
import mongoose from 'mongoose'
const Schema = mongoose.Schema
let AccountSchema = new Schema ({
accountName: {
type: String,
trim: true,
required: true,
unique: [true, "You already have an account with this name."],
},
percent: {
type: Number,
min: 1,
max: 100,
required: true
},
isGoal: {
type: Boolean,
default: false
},
accountHistory: {
type: Array
}
})
const Account = mongoose.model('users', AccountSchema)
export default Account
として別のファイルにユーザー・スキーマ:私は、スキーマをエクスポートするように言われた一品ではなく、モデルで
// users.js
import express from 'express'
import mongoose from 'mongoose'
const Schema = mongoose.Schema
import Account from './accounts'
let UserSchema = new Schema ({
username: {
type: String,
unique: [true, "This username is taken."],
trim: true,
},
email: {
type: String,
unique: [true, "This email is already being used."],
trim: true
},
password: {
type: String,
trim: true
},
infusions: {
type: Array,
timestamps: true
},
accounts: {
type: [Account],
count: {
type: Number,
default: 8
}
},
secretToken: {
type: String
},
active: {
type: Boolean,
default: false
},
isAdmin: {
type: Boolean,
default: false
}
}, {
timestamps: true,
})
const User = mongoose.model('users', UserSchema)
export default User
それはスキーマを参照していますが、それを達成する方法については何も考えていませんでした。
への最後の行を変更し、あなたの 'account.js'ファイルからAccountSchema)' –
そして最終行を 'export default AccountSchema'とします –
それはそれでした!そんなにPavan Voraありがとう! – jrantz