Skip to content

Instantly share code, notes, and snippets.

@donnut
Created September 25, 2012 10:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save donnut/3781153 to your computer and use it in GitHub Desktop.
Save donnut/3781153 to your computer and use it in GitHub Desktop.
mongoose recursive schema definition that includes model (fails)
define([
'mongoose'
, './Cm'
], function(
mongoose,
Cm
) {
var A = new mongoose.Schema({
name: String
});
return A;
});
define([
'mongoose'
, './A'
], function(
mongoose,
A
) {
var B = new mongoose.Schema({
name: String
});
return B;
});vi
define([
'mongoose'
, './B'
], function(
mongoose,
B
) {
var C = new mongoose.Schema({
name: String
, ref: [B]
});
return C;
});
define([
'mongoose'
, './C'
], function(
mongoose,
C
) {
return mongoose.model('Cm', C);
});
var requirejs = require('requirejs')
, mongoose = require('mongoose');
requirejs.config({
baseUrl: __dirname
, nodeRequire: require
});
requirejs([
'./A'
, './Cm'
], function(
A
, Cm
) {
var Am = mongoose.model('A', A);
var a = new Am();
var c = new Cm();
});
@donnut
Copy link
Author

donnut commented Sep 25, 2012

running this in node generates the following error:

  throw new Error('Schema hasn\'t been registered for model "' + name + '"
           ^
Error: Schema hasn't been registered for model "Cm".
Use mongoose.model(name, schema)
    at Mongoose.model (/home/donnut/dev/js/node_modules/mongoose/lib/index.js:222:13)
    ....

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment