Wie registriere ich das Mungo-Plugin für alle Schemata?

Was vermisse ich? Die Mongoose Docs sagen, dassmongoose.plugin() registriert ein Plugin für alle Schemata. Das funktioniert nicht. Ich KANN mein Plugin in JEDEM Schema registrieren.

Mein Plugin:

module.exports = function (schema, options) {

    schema.set('toObject',{
        transform: function (doc, ret, options) {
            return {
                test: 'It worked!'
            };
        }
    });
};

Mein Schema:

var testPlugin = require('test-plugin.js');

var personSchema = mongoose.Schema({

    _id : { type: String, default: $.uuid.init },

    ssn : { type: String, required: true, trim: true },

    first : { type: String, required: true, trim: true },
    middle : { type: String, required: true, trim: true },
    last : { type: String, required: true, trim: true }
});
personSchema.plugin(testPlugin);

var model = mongoose.model('Person', personSchema);

module.exports = model;

Der obige Code funktioniert leider. Der folgende Code funktioniert jedoch nicht:

var personSchema = mongoose.Schema({

    _id : { type: String, default: $.uuid.init },

    ssn : { type: String, required: true, trim: true },

    first : { type: String, required: true, trim: true },
    middle : { type: String, required: true, trim: true },
    last : { type: String, required: true, trim: true }
});

var model = mongoose.model('Person', personSchema);

module.exports = model;

Meine Test-App:

var testPlugin = require('test-plugin.js');
mongoose.plugin(testPlugin);

mongoose.Promise = global.Promise;
mongoose.connect(config.db);
mongoose.connection.on('error', function (err) {
    if (err) { throw err; }
});
mongoose.connection.once('open', function (err) {
    if (err) { throw err; }

    seeds.doSeed(function(err){
        if (err) { return process.exit(1); }

        models.Person.find({}, function(err, people){
            if (err) { throw err; }

            var person = people[0];
            var oPerson = person.toObject();

            console.log(JSON.stringify(oPerson));
        });
    });
});

Ich habe versucht, das @ zu bewegmongoose.plugin(testPlugin) überall auf derapp.js Datei ... nach dem Verbinden, etc ... und nichts hat funktioniert.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage