首页 > 解决方案 > TypeError:无法在 Promise.all.inventory.map 读取 null 的属性“稀有”

问题描述

有谁知道如何修理它?

代码第 132 行:-

              if (!item.rarity) {
                const rarity = (
                  tags.find((t) => t.category === 'Rarity') || {}
                ).name

                updateQuery = { ...updateQuery, rarity }
              }

输出:-

(节点:58908)DeprecationWarning:collection.update 已弃用。请改用 updateOne、updateMany 或 bulkWrite。(node:58908) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'rarity' of null at Promise.all.inventory.map (C:\protect1\utilities\inventoryFetch.js:132:29) at (node:58908) UnhandledPromiseRejectionWarning: Unhandled承诺拒绝。此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。(拒绝编号:1)

标签: javascriptnode.jsmongodbnpm

解决方案


在代码的这一点上,您的“项目”的值未定义。

由于它在一个返回 Promise 的函数中,并且您显然没有通过 catch() 块处理错误情况,因此会弹出此错误。

在 if-else 块之前记录 item 变量。

在使用此函数的任何地方放置一个 catch() 块并在那里记录错误。


推荐阅读