Въпреки че не съм сигурен за значението на req.body.starttime
, почти съм сигурен, че търсите обектите на схемата pre()
функция, която е част от междинния софтуер на Mongoose и позволява дефинирането на функциите за обратно извикване да бъде изпълнено, преди данните да бъдат записани. Вероятно нещо подобно върши желаната работа:
var RunSchema = new Schema({
[...]
starttime: {
type: Date,
default: Date.now
}
});
RunSchema.pre('save', function(next) {
this.starttime = new Date();
next();
});
Имайте предвид, че функцията за обратно извикване за save
събитието се извиква всеки път, преди да бъде създаден или актуализиран запис. Така че това е например начинът за изрично задаване на "модифициран" времеви печат.
РЕДАКТИРАНЕ:
Благодарение на вашия коментар сега разбрах по-добре какво искате да постигнете. В случай, че искате да промените данните, преди да бъдат присвоени и запазени в записа, можете лесно да използвате set
свойство на схемата:
// defining set within the schema
var RunSchema = new Schema({
[...]
starttime: {
type: Date,
default: Date.now,
set: util.getDate
}
});
Ако приемем, че обектът util
е в обхвата (задължително или каквото и да е) текущата ви реализация отговаря на подписа за свойството set
:
function set(val, schemaType)
Незадължителният параметър schemaType
ви позволява да проверявате свойствата на дефиницията на полето на вашата схема, ако процесът на трансформиране зависи от него по някакъв начин.