Вы не тестируете свойства перед тем, как получить к ним доступ. Проблема здесь:
const imgPath = req.file.path.substring(req.file.path.indexOf('/'),
req.file.path.length);
Вы должны всегда проверять свойства, чтобы убедиться, что они существуют, прежде чем делать глубокий доступ. Это защитит ваши приложения от этих ошибок, которые технически называются «исключения нулевого указателя». Это проблема в JS.
Так что вы всегда должны делать что-то вроде:
const maybeFile = req.file
const maybePath = maybeFile ? maybeFile.path : undefined
const maybeImgPath = maybePath ? maybePath.substring(path.indexOf('/'), path.length) : undefined
// now maybeImgPath is either a path or undefined. Test it before using it
Это объясняет сообщение об ошибке.
Для основной проблемы:
Проблема с формой req
. Для проверки используйте console.log(req)
.
Либо ваше предположение о его форме неверно, либо вы неправильно передаете данные в запросе, когда публикуете их из внешнего интерфейса.
В любом случае, вы должны начать оборонительное программирование против undefined
в своем коде, когда вы go.