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.