sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvordan forespørger man inde fra Mongoose pre-hook i en Node.js / Express-app?

Desværre er det ikke dokumenteret særlig godt (ingen omtale af det i Document.js API-dokumenterne), men dokumenter har adgang til deres modeller gennem constructor felt - jeg bruger det hele tiden til at logge ting fra plugins, hvilket giver mig adgang til, hvilken model de er knyttet til.

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();
    });
});

For din situation bør du være i stand til at gøre:

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. Er der nogen anbefalet værdi af COUNT for SCAN / HSCAN kommando i REDIS?

  2. Mongoose find() RegExp for nummertypefelt

  3. Implementer referencesæt i Redis

  4. Fejl:Redis forbindelse til 127.0.0.1:6379 mislykkedes - tilslut ECONNREFUSED 127.0.0.1:6379