Embora eu não tenha certeza sobre o significado de
req.body.starttime
, tenho certeza que você está procurando pelos objetos Schema pre()
função que faz parte do Middleware do Mongoose e permite que a definição de funções de retorno de chamada sejam executadas antes que os dados sejam salvos. Provavelmente algo assim faz o trabalho desejado:var RunSchema = new Schema({
[...]
starttime: {
type: Date,
default: Date.now
}
});
RunSchema.pre('save', function(next) {
this.starttime = new Date();
next();
});
Observe que a função de retorno de chamada para
save
evento é chamado toda vez antes de um registro ser criado ou atualizado. Portanto, esta é, por exemplo, a maneira de definir explicitamente um carimbo de data/hora "modificado". EDITAR:
Graças ao seu comentário, agora entendi melhor o que você deseja alcançar. Caso você queira modificar os dados antes que eles sejam atribuídos e persistidos no registro, você pode facilmente utilizar o
set
propriedade do esquema:// defining set within the schema
var RunSchema = new Schema({
[...]
starttime: {
type: Date,
default: Date.now,
set: util.getDate
}
});
Supondo que o objeto
util
está dentro do escopo (obrigatório ou qualquer outro) sua implementação atual se encaixa na assinatura da propriedade set
:function set(val, schemaType)
O parâmetro opcional
schemaType
permite inspecionar as propriedades de sua definição de campo de esquema se o processo de transformação depender dele de alguma forma.