Sementara saya tidak yakin tentang arti req.body.starttime
, saya cukup yakin Anda sedang mencari objek Skema pre()
fungsi yang merupakan bagian dari Mongoose Middleware dan memungkinkan definisi fungsi panggilan balik dijalankan sebelum data disimpan. Mungkin sesuatu seperti ini melakukan pekerjaan yang diinginkan:
var RunSchema = new Schema({
[...]
starttime: {
type: Date,
default: Date.now
}
});
RunSchema.pre('save', function(next) {
this.starttime = new Date();
next();
});
Perhatikan bahwa fungsi panggilan balik untuk save
event dipanggil setiap kali sebelum record dibuat atau diperbarui. Jadi, ini misalnya cara menyetel stempel waktu "diubah" secara eksplisit.
EDIT:
Berkat komentar Anda, saya sekarang mendapatkan pemahaman yang lebih baik tentang apa yang ingin Anda capai. Jika Anda ingin mengubah data sebelum ditetapkan dan disimpan ke catatan, Anda dapat dengan mudah menggunakan set
properti Skema:
// defining set within the schema
var RunSchema = new Schema({
[...]
starttime: {
type: Date,
default: Date.now,
set: util.getDate
}
});
Dengan asumsi bahwa objek util
berada dalam ruang lingkup (diperlukan atau apa pun) implementasi Anda saat ini sesuai dengan tanda tangan untuk properti set
:
function set(val, schemaType)
Parameter opsional schemaType
memungkinkan Anda untuk memeriksa properti definisi bidang skema Anda jika proses transformasi bergantung padanya dengan cara apa pun.