节点.js无法读取未定义的属性"toJsonWith"



我试图返回图标,因此,在页面上产生它们

map下面的代码是我试图返回到页面的所有结果。

const icons = await Icon.find({ _id: { $in: ids } }).select({ ...options.select, ...options.additional })
const results = ids
.map(id => {
const iconsGroup = icons.find(icon => icon.id === id)
if (query.hasPublishingError) {
iconsGroup.icons = iconsGroup.icons.filter(el => (el.errorsData.length > 0 && el.status === 'draft'))
}
return iconsGroup
})
.map(i => i.toJsonWith(options.select))
await postProcess(results)
return {
docs: results,
limit: response.limit,
page: response.page,
pages: response.pages,
total: response.total
}

当我做一个GET请求,我得到一个错误,如:

TypeError: Cannot read property 'toJsonWith' of undefinedn

痛点为.map(i => i.toJsonWith(options.select))

顺便说一下,由于某种原因,这个函数toJsonWith不能作为声明在某处找到。请帮帮我,我这4天都在想办法弄清楚到底出了什么问题。

_id必须是唯一的

const iconsGroup = icons.find(icon => icon.id === id)

应该返回一个最多包含一个元素的arrayObject。

然后检查发布错误

if (query.hasPublishingError) {
iconsGroup.icons = iconsGroup.icons.filter(el => (el.errorsData.length > 0 && el.status === 'draft'))
}

这里iconsGroup是一个空数组

接下来,您创建第二个映射,以使用神奇的toJsonWith(我也不知道它是做什么的)。

你可以结合这两个地图,直接迭代你的图标,而不是在你的id上使用地图(下面的代码根据query.hasPublishingError给你一个图标数组):

const results = icons.map(icon => {
if (query.hasPublishingError && icon.errorsData.length > 0 && icon.status === 'draft') {
return icon.toJsonWith(options.select)
} else {
return icon.toJsonWith(options.select)
}
})

相关内容

  • 没有找到相关文章

最新更新