for value undefined at path " <--
Задача: получить коллекцию с БД, Если ее нету - вернуть пустой массив.
Есть модель:
const Soldier = new mongoose.Schema({
title: {
type: String,
required: true
},
image: {
type: String,
required: true
},
rank: {
type: String,
required: true
},
status: {
type: String,
default: '1'
},
created_at: {
type: Date,
default: new Date()
},
updated_at: {
type: Date,
default: new Date()
}
})
export default mongoose.model('Soldier', Soldier)
Есть сервис:
export const getSoldiers = async ({
offset = 0,
limit = 9
}) => Soldier.find({}, null, {
skip: parseInt(offset),
limit: parseInt(limit)
})
Есть контроллер:
export const SoldiersListController = async (request, response, next) => {
try {
const { offset, limit } = request.query
const soldiers = await getSoldiers({
offset,
limit
})
return response
.status(200)
.json({
status: true,
soldiers: Array.isArray(soldiers)
? soldiers.map(soldier => SoldiersListItemMapper(soldier))
: []
})
} catch (error) {
next(error)
}
return response
.status(200)
.json({
success: true,
data
})
}
так ведь все то же самое что и выше предлагал, ищите где у вас не проинициализированы переменные или обращение к неправильным полям
Так, дело в том, что все нормально проинициализировано. Там несколько полей. Я переписывал модель и переписывал функции модели, переписывал контроллер, роуты. Похожий модуль - работает без проблем и получает список объектов, если такой есть в базе, а если нет - пустой массив. Все аналогично и с коллекией «soldiers», но не могу получить из-за ошибки —> Error: Cast to undefined failed for value undefined at path " <--
Обсуждают сегодня