Actualmente tengo todos mis modelos (definiciones de esquema) en el archivo /models/models.js para mi aplicación Mongoose/NodeJS.Estructura de archivo de Mongoose & NodeJS Project
me gustaría romper estos aparte en diferentes archivos, tales como: user_account.js, profile.js, etc. Sin embargo, me parece que no puede hacerlo como mis controladores rompen e informar "no puede encontrar el módulo" una vez Hago estas clases aparte.
Mi estructura del proyecto es el siguiente:
/MyProject
/controllers
user.js
foo.js
bar.js
// ... etc, etc
/models
models.js
server.js
El contenido de mi archivo models.js se ve así:
var mongoose = require('mongoose'),
Schema = mongoose.Schema,
ObjectId = Schema.ObjectId;
mongoose.connect('mongodb://localhost/mydb');
var UserAccount = new Schema({
user_name : { type: String, required: true, lowercase: true, trim: true, index: { unique: true } },
password : { type: String, required: true },
date_created : { type: Date, required: true, default: Date.now }
});
var Product = new Schema({
upc : { type: String, required: true, index: { unique: true } },
description : { type: String, trim: true },
size_weight : { type: String, trim: true }
});
Mi archivo user.js (controlador) tiene el siguiente aspecto:
var mongoose = require('mongoose'),
UserAccount = mongoose.model('user_account', UserAccount);
exports.create = function(req, res, next) {
var username = req.body.username;
var password = req.body.password;
// Do epic sh...what?! :)
}
¿Cómo puedo dividir la definición del esquema en varios archivos y también hacer referencia a él desde mi contro ller? Cuando hago referencia a ella (después de que el esquema es en un nuevo archivo) me sale este error:
* Error: el esquema no se ha registrado para el modelo "USER_ACCOUNT" *
pensamientos.?
escribí módulo mangosta-pegamento que ayuda a estructurar sus modelos mangosta: https: // github.com/xpepermint/mongoose-glue – xpepermint