sql >> Database >  >> NoSQL >> MongoDB

Hoe vraag je vanuit Mongoose pre hook in een Node.js / Express-app?

Helaas is het niet erg goed gedocumenteerd (er wordt niet over gesproken in de Document.js API-documenten), maar documenten hebben toegang tot hun modellen via de constructor veld - ik gebruik het de hele tijd om dingen van plug-ins te loggen, waardoor ik toegang heb tot het model waaraan ze zijn gekoppeld.

module.exports = function readonly(schema, options) {
    schema.pre('save', function(next) {
        console.log(this.constructor.modelName + " is running the pre-save hook.");

        // some other code here ...

        next();
    });
});

Voor uw situatie zou u het volgende moeten kunnen doen:

IdeaSchema.pre('save', function(next) {
    var idea = this;

    function generate_slug(text) {
        return text.toLowerCase().replace(/[^\w ]+/g,'').replace(/ +/g,'-').trim();
    };

    idea.slug = generate_slug(idea.title);

    // this now works
    this.constructor.findOne({slug: idea.slug}, function(err, doc) {
        console.log(err);
        console.log(doc);
        next(err, doc);
    });

    //console.log(idea);
});


  1. Hoe verzendt socket.io berichten over meerdere servers?

  2. Hoe mongodb opvragen met "like" met behulp van de java-api?

  3. MongoDB-query $in met regex-array van elementen

  4. mongodb Mislukt:fout bij het verbinden met db-server:geen bereikbare servers