2016-08-08 37 views

Antwort

1

Sie möchten möglicherweise eine Funktion erstellen und dann diese Funktion für alle Schema verwenden möchten.

Wenn ich Ihre Anforderung verstanden habe, dann müssen Sie eine Funktion in einer separaten Datei erstellen und diese Datei als Schema-Plugin hinzufügen.

Zum Beispiel:

in lastUpdate.js Datei eine Funktion erstellen, die

module.exports = exports = function lastUpdatePlugin (schema) { 
    schema.add({ updateTime: Date }) 

    schema.pre('save', function (next) { 
    this.updateTime= new Date 
    next() 
    }); 
} 

in user.js Schemadatei für verschiedenes Schema Verwendung wird funktionieren:

var lastUpdate = require('./lastUpdate');//load lastUpdate.js file 
var User= new Schema({name: String, ... }); 
User.plugin(lastUpdate); 

in bank.js Schemadatei:

var lastUpdate = require('./lastUpdate');//load lastUpdate.js file 
var Bank= new Schema({bankName: String, ... }); 
Bank.plugin(lastUpdate); 

Dann, wenn speichern user und bank dann automatisch aktualisiert updateTime für jedes Schema

+0

Ja, es ist auch ein gutes Beispiel, danke, aber es löst das Problem eigentlich nicht, mein Hauptproblem sind benutzerdefinierte Filter, wie der Aufruf von User.customWhere (...), der beim Aufruf User.where mit RegEx zum Beispiel aufrufen kann. – Shekspir