Вероятно, самая подробная и всесторонняя статья на this
такова:
Нежное объяснение ключевого слова этого «this» в JavaScript
Идея позади this
заключается в понимании того, что типы вызова функции имеют важное значение при установке значения this
.
Когда возникают проблемы с идентификацией this
, не спрашивайте себя:
Где
this
взято из ?, но спросите себя:
Как вызывается функция ?
arrow function (специальный случай прозрачности контекста) спросите себя:
Какое значение имеет
this
, где определена функция стрелки ?Этот настрой правилен при работе с
this
и избавит вас от головной боли.
Казалось бы, вы пытаетесь получить доступ к параметру в вашем API, не передавая его в своем запросе. Вы просите параметры здесь:
await reports.findOne({_id: new mongodb.ObjectID( req.params.id)})
, но не передали ни одного в вашем запросе. Это должно сделать это:
return axios.get('/:id', {
params: {
id: `${id}`
}
})