Aunque no estoy seguro del significado de req.body.starttime
, estoy bastante seguro de que está buscando los objetos de esquema pre()
función que forma parte de Mongoose Middleware y permite ejecutar la definición de funciones de devolución de llamada antes de guardar los datos. Probablemente algo como esto haga el trabajo deseado:
var RunSchema = new Schema({
[...]
starttime: {
type: Date,
default: Date.now
}
});
RunSchema.pre('save', function(next) {
this.starttime = new Date();
next();
});
Tenga en cuenta que la función de devolución de llamada para save
event se llama cada vez antes de que se cree o actualice un registro. Entonces, esta es, por ejemplo, la forma de establecer explícitamente una marca de tiempo "modificada".
EDITAR:
Gracias a tu comentario, ahora tengo una mejor comprensión de lo que quieres lograr. En caso de que desee modificar los datos antes de que se asignen y conserven en el registro, puede utilizar fácilmente el set
propiedad del Esquema:
// defining set within the schema
var RunSchema = new Schema({
[...]
starttime: {
type: Date,
default: Date.now,
set: util.getDate
}
});
Suponiendo que el objeto util
está dentro del alcance (requerido o lo que sea) su implementación actual se ajusta a la firma de la propiedad set
:
function set(val, schemaType)
El parámetro opcional schemaType
le permite inspeccionar las propiedades de su definición de campo de esquema si el proceso de transformación depende de alguna manera.