Schemas in externem Modul funktioniert nicht in Node.js

Ich habe massive Kopfschmerzen beim Versuch, einige allgemeine Schemadefinitionen über ein Modul für alle anderen Module in meiner Codebasis freizugeben.

Ich habe ein Modul myproj_schemas, das diese beiden Schemata enthält:

var mongoose = require('mongoose'),
    util = require("util"),
    Schema = mongoose.Schema;

var BaseProfileSchema = function() {
    Schema.apply(this, arguments);

    this.add({
        _user: {type: Schema.Types.ObjectId, ref: 'User', required: true},
        name: {type: String, required: true},
        bio: {type: String, required: true},
        pictureLink: String
    });

};
util.inherits(BaseProfileSchema, Schema);

module.exports = BaseProfileSchema;

Un

var mongoose = require('mongoose'),
    BaseProfileSchema = require('./base_profile_schema.js'),
    Schema = mongoose.Schema;

var entSchemaAdditions = {
    mentors: {type: Schema.Types.ObjectId, ref: 'Mentor'}
};


var entrepreneurSchema = new BaseProfileSchema(entSchemaAdditions);

module.exports = entrepreneurSchema;

Mentors ist auch in einer anderen Datei definiert.

Meine Unit-Tests für diese beiden funktionieren im Schema-Modul.

Wenn ich npm dieses Modul installiere und versuche, es mit @ zu erstell

Entrepreneur = db.model('Entrepreneur', entrepreneurSchema),

Ich erhalte den folgenden Fehler:

TypeError: Undefinierter Typ beipaths.mentors Hast du versucht, Schemas zu verschachteln? Sie können nur mit refs oder arrays verschachteln.

Wenn ich denselben Code in meinem lokalen Modul verwende, ist das kein Problem. Wenn ich auf die Schemadatei direkt in der Anforderung verweise (z. B. Anforderung ('../ node_modules / myproj_schemas / models / ent_schema'), erhalte ich den Fehler.

Ich bin mir ziemlich sicher, dass es früher nicht so funktioniert hat, aber ich habe alle Änderungen rückgängig gemacht und es funktioniert immer noch nicht.

Ich zeichne eine komplette Lücke, und alle Vorschläge würden dankbar erhalten.

BEARBEITEN

Ich habe ein neues Schemamodul erstellt. Es hat ein Schema:

var mongoose = require('mongoose');

var userSchema = new mongoose.Schema({
    email: String
});

module.exports = userSchema;

Dies schlägt auch fehl, wenn es in ein Modul gepackt und npm auf anderen Modulen installiert wird.

Running unter OS X

Antworten auf die Frage(3)

Ihre Antwort auf die Frage