Selvom jeg ikke er sikker på betydningen af req.body.starttime
, jeg er ret sikker på, at du leder efter Schema-objekterne pre()
funktion, som er en del af Mongoose Middleware og gør det muligt at udføre definitionen af tilbagekaldsfunktioner, før data gemmes. Sandsynligvis noget som dette gør det ønskede job:
var RunSchema = new Schema({
[...]
starttime: {
type: Date,
default: Date.now
}
});
RunSchema.pre('save', function(next) {
this.starttime = new Date();
next();
});
Bemærk, at tilbagekaldsfunktionen for save
hændelse kaldes hver gang før en post oprettes eller opdateres. Så dette er for eksempel måden til eksplicit at indstille et "modificeret" tidsstempel.
EDIT:
Takket være din kommentar har jeg nu fået en bedre forståelse af, hvad du vil opnå. I tilfælde af at du ønsker at ændre data, før de bliver tildelt og bestået til posten, kan du nemt bruge set
skemaets egenskab:
// defining set within the schema
var RunSchema = new Schema({
[...]
starttime: {
type: Date,
default: Date.now,
set: util.getDate
}
});
Forudsat at objektet util
er inden for omfanget (påkrævet eller hvad som helst) din nuværende implementering passer til signaturen for egenskaben set
:
function set(val, schemaType)
Den valgfri parameter schemaType
giver dig mulighed for at inspicere egenskaberne for din skemafeltdefinition, hvis transformationsprocessen afhænger af den på nogen måde.