Während ich mir über die Bedeutung von req.body.starttime
nicht sicher bin , ich bin mir ziemlich sicher, dass Sie nach den Schema-Objekten pre()
suchen Funktion, die Teil der Mongoose Middleware ist und die Definition von Callback-Funktionen erlaubt, die ausgeführt werden, bevor Daten gespeichert werden. Wahrscheinlich macht so etwas den gewünschten Job:
var RunSchema = new Schema({
[...]
starttime: {
type: Date,
default: Date.now
}
});
RunSchema.pre('save', function(next) {
this.starttime = new Date();
next();
});
Beachten Sie, dass die Callback-Funktion für das save
event wird jedes Mal aufgerufen, bevor ein Datensatz erstellt oder aktualisiert wird. So kann beispielsweise explizit ein "modifizierter" Zeitstempel gesetzt werden.
BEARBEITEN:
Dank Ihres Kommentars habe ich jetzt besser verstanden, was Sie erreichen möchten. Falls Sie Daten ändern möchten, bevor sie dem Datensatz zugewiesen und gespeichert werden, können Sie einfach das set
verwenden Eigenschaft des Schemas:
// defining set within the schema
var RunSchema = new Schema({
[...]
starttime: {
type: Date,
default: Date.now,
set: util.getDate
}
});
Angenommen, das Objekt util
innerhalb des Geltungsbereichs (erforderlich oder was auch immer) liegt, passt Ihre aktuelle Implementierung zur Signatur für die Eigenschaft set
:
function set(val, schemaType)
Der optionale Parameter schemaType
ermöglicht es Ihnen, die Eigenschaften Ihrer Schemafelddefinition zu überprüfen, wenn der Transformationsprozess in irgendeiner Weise davon abhängt.