Hoewel ik niet zeker ben over de betekenis van req.body.starttime
, ik ben er vrij zeker van dat je op zoek bent naar de Schema-objecten pre()
functie die deel uitmaakt van de Mongoose Middleware en waarmee de definitie van callback-functies kan worden uitgevoerd voordat gegevens worden opgeslagen. Waarschijnlijk doet zoiets als dit het gewenste werk:
var RunSchema = new Schema({
[...]
starttime: {
type: Date,
default: Date.now
}
});
RunSchema.pre('save', function(next) {
this.starttime = new Date();
next();
});
Merk op dat de callback-functie voor de save
gebeurtenis wordt elke keer aangeroepen voordat een record wordt gemaakt of bijgewerkt. Dit is dus bijvoorbeeld de manier om expliciet een "gewijzigde" tijdstempel in te stellen.
BEWERKEN:
Dankzij uw opmerking begrijp ik nu beter wat u wilt bereiken. Als u gegevens wilt wijzigen voordat deze worden toegewezen en bewaard in het record, kunt u eenvoudig de set
gebruiken eigenschap van het schema:
// defining set within the schema
var RunSchema = new Schema({
[...]
starttime: {
type: Date,
default: Date.now,
set: util.getDate
}
});
Ervan uitgaande dat het object util
valt binnen het bereik (vereist of wat dan ook) uw huidige implementatie past bij de handtekening voor de eigenschap set
:
function set(val, schemaType)
De optionele parameter schemaType
stelt u in staat om de eigenschappen van uw schemavelddefinitie te inspecteren als het transformatieproces er op enigerlei wijze van afhankelijk is.