Node.js 无法读取未定义的 属性 'toJsonWith'
Node.js Cannot read property 'toJsonWith' of undefined
我正在尝试 return 图标,结果是在页面上生成它们
下面的代码 map
我正在尝试 return 到页面的所有结果。
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 undefined\n
痛点是.map(i => i.toJsonWith(options.select))
顺便说一下,由于某种原因,这个函数 toJsonWith
在某处找不到声明。
请帮帮我,我已经花了 4 天时间来弄清楚这里出了什么问题。
_id 应该始终是唯一的,所以
const iconsGroup = icons.find(icon => icon.id === id)
应该return一个最多有一个元素的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)
}
})
我正在尝试 return 图标,结果是在页面上生成它们
下面的代码 map
我正在尝试 return 到页面的所有结果。
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 undefined\n
痛点是.map(i => i.toJsonWith(options.select))
顺便说一下,由于某种原因,这个函数 toJsonWith
在某处找不到声明。
请帮帮我,我已经花了 4 天时间来弄清楚这里出了什么问题。
_id 应该始终是唯一的,所以
const iconsGroup = icons.find(icon => icon.id === id)
应该return一个最多有一个元素的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)
}
})