node mongoosejs exports examples example create javascript node.js mongodb mongoose nosql

javascript - mongoosejs - Cómo obtener el esquema de la base de datos de mangosta que se define en otro modelo



node js mongoose model (3)

Esta es mi estructura de carpetas:

+-- express_example |---- app.js |---- models |-------- songs.js |-------- albums.js |---- and another files of expressjs

Mi código en el archivo songs.js

var mongoose = require(''mongoose'') , Schema = mongoose.Schema , ObjectId = Schema.ObjectId; var SongSchema = new Schema({ name: {type: String, default: ''songname''} , link: {type: String, default: ''./data/train.mp3''} , date: {type: Date, default: Date.now()} , position: {type: Number, default: 0} , weekOnChart: {type: Number, default: 0} , listend: {type: Number, default: 0} }); module.exports = mongoose.model(''Song'', SongSchema);

Y aquí está mi código en el archivo albums.js

var mongoose = require(''mongoose'') , Schema = mongoose.Schema , ObjectId = Schema.ObjectId; var AlbumSchema = new Schema({ name: {type: String, default: ''songname''} , thumbnail: {type:String, default: ''./images/U1.jpg''} , date: {type: Date, default: Date.now()} , songs: [SongSchema] }); module.exports = mongoose.model(''Album'', AlbumSchema);


¿Cómo puedo hacer que albums.js sepa SongSchema para ser definido AlbumSchema


Para obtener el esquema de un modelo Mongoose registrado, necesita acceder al esquema específicamente:

var SongSchema = require(''mongoose'').model(''Song'').schema;


Puede obtener modelos definidos en otra parte directamente con Mongoose:

require(''mongoose'').model(name_of_model)

Para obtener el esquema en su ejemplo en albums.js, puede hacer esto:

var SongSchema = require(''mongoose'').model(''Song'').schema


var SongSchema = require(''mongoose'').model(''Song'').schema;

La línea de código de arriba en tu albums.js seguramente funcionará.