Chociaż nie jestem pewien znaczenia req.body.starttime
, jestem prawie pewien, że szukasz obiektów schematu pre()
funkcja, która jest częścią oprogramowania pośredniczącego Mongoose i umożliwia zdefiniowanie funkcji wywołania zwrotnego, które mają zostać wykonane przed zapisaniem danych. Prawdopodobnie coś takiego wykonuje pożądaną pracę:
var RunSchema = new Schema({
[...]
starttime: {
type: Date,
default: Date.now
}
});
RunSchema.pre('save', function(next) {
this.starttime = new Date();
next();
});
Zauważ, że funkcja wywołania zwrotnego dla save
zdarzenie jest wywoływane za każdym razem przed utworzeniem lub aktualizacją rekordu. Jest to na przykład sposób na jawne ustawienie „zmodyfikowanego” znacznika czasu.
EDYCJA:
Dzięki Twojemu komentarzowi lepiej zrozumiałem, co chcesz osiągnąć. Jeśli chcesz zmodyfikować dane, zanim zostaną przypisane i utrwalone w rekordzie, możesz łatwo użyć set
własność schematu:
// defining set within the schema
var RunSchema = new Schema({
[...]
starttime: {
type: Date,
default: Date.now,
set: util.getDate
}
});
Zakładając, że obiekt util
znajduje się w zakresie (wymagane lub cokolwiek innego) Twoja bieżąca implementacja pasuje do sygnatury właściwości set
:
function set(val, schemaType)
Opcjonalny parametr schemaType
umożliwia sprawdzenie właściwości definicji pola schematu, jeśli proces transformacji zależy od niej w jakikolwiek sposób.