export const destroy = async ({ params }, res, next) =>{
var visitaVar
await Visita.findById(params.id)
.then(notFound(res))
.then((visita) => {
visitaVar = visita
visita.remove()})
.catch(next)
await Alumno.find({'visitas.fecha': visitaVar.fecha})
.then(alumno =>{
console.log("Alumno =>" + alumno)
console.log("Alumno visitas => " + alumno.visitas)
for (let index = 0; index < alumno.visitas.length; index++) {
const element = alumno.visitas[index];
if(element == visitaVar.fecha)
alumno.visitas.splice(index, 1);
}
return alumno.save()
})
.then(success(res, 204))
.catch(next)
}
Проблема состоит в том, что первый console.log ученика возвращает мне следующее
Alumno =>{ _id: 5c90e4b23c3b1d31c67c2582,
nombre: 'Cristobal',
email: 'cristobal@gmail.com',
telefono: 987456123,
tutor: 5c90c73e7c9d2d1ebf231487,
visitas:
[ { realizada: false,
_id: 5c90e5243c3b1d31c67c2584,
titulo: 'Otra visita5',
fecha: 2019-03-25T09:00:00.000Z },
{ realizada: false,
_id: 5c90e64173201e32a7877705,
titulo: 'Otra visita7',
fecha: 2019-03-26T09:00:00.000Z }],
createdAt: 2019-03-19T12:46:42.958Z,
updatedAt: 2019-03-19T19:20:20.503Z,
__v: 7 }
И следующий console.log alumno.visitas я получаю следующее
Alumno visitas => undefined
Я попытался с остальными полями и не понимаю, из-за которого он возвращает меня undefined. Он, из-за которого я соглашаюсь плохо на признаки?.
ВїHas, протестированный подтверждать, есть ли у переменной visitaVar
стоимость?
Я это tratarГ - чтобы делать без async/await, и harГ - в смесь callbacks и promises . А именно, консультация по поводу Vistia она harГ - в с callback (а именно, используя mГ©todo exec
, так как он гарантирует тебе, что invocarГЎ, когда осуществится консультация); консультация по поводу Ученика ты можешь реализовывать уже с clГЎsico thenable mongoose (.then(...)
) или с новым callback (два уровня callbacks не становятся совсем адом).
ГЃnimo и приветствие.
Я смог решить это меняя find на findOne, абзац она comparaciГіn дат внутри for плохой и его должно бы быть
if(element.fecha.getTime() === visitaVar.fecha.getTime())