如何修复 UnhandledPromiseRejectionWarning: CastError: Cast to number failed for value "undefined&qu
Posted
技术标签:
【中文标题】如何修复 UnhandledPromiseRejectionWarning: CastError: Cast to number failed for value "undefined" at Discord.js 和 MongoDB【英文标题】:How to fix UnhandledPromiseRejectionWarning: CastError: Cast to number failed for value "undefined" at path in Discord.js and MongoDB 【发布时间】:2021-08-05 02:29:21 【问题描述】:所以,我正在尝试使用 MongoDB 在 Discord.js 中建立一个简单的经济系统。我首先为了钱做了一个单一的数据库。我还设置了一个命令来模拟向用户添加货币。它工作得很好。只有当我尝试添加具有不同名称、架构和变量等的第二个重复系统时,我才遇到问题。我很好地设置了另一个数据库,它实际上工作得很好。然后我尝试设置一个命令来模拟向该数据库添加值,并在使用该命令时出现此错误UnhandledPromiseRejectionWarning: CastError: Cast to number failed for value "undefined" at path "stars"
(第二个数据库称为stars)。由于我实现了一些有用的控制台日志,我想我会在代码遇到此问题时跟踪问题:
const starresult = await profileSchema.findOneAndUpdate(
guildId,
userId
,
guildId,
userId,
$inc:
stars
,
upsert: true,
new: true
)
此代码与我用于第一种货币的代码完全相同,除了所有适当的变量和类似的东西。如果您需要查看更多代码,请告诉我。提前致谢!
编辑:这是一些与星星相关的代码
整个相关的导出:
const mongo = require('./mongo')
const profileSchema = require('./schemas/profile-schema')
const starsCache =
module.exports = (client) =>
module.exports.addStars = async (guildId, userId, coins, stars) =>
return await mongo().then(async (mongoose) =>
try
console.log('Running findOneAndUpdate()')
const starresult = await profileSchema.findOneAndUpdate(
guildId,
userId
,
guildId,
userId,
$inc:
stars
,
upsert: true,
new: true
)
console.log('RESULT:', starresult)
starsCache[`$guildId-$userId`] = starresult.stars
return starresult.stars
finally
mongoose.connection.close()
)
配置文件架构的一部分:
const profileSchema = mongoose.Schema(
guildId: reqString,
userId: reqString,
stars:
type: Number,
required: true
,
coins:
type: Number,
required: true
,
)
【问题讨论】:
【参考方案1】:这个错误告诉你你需要知道什么。您正在尝试按数量增加 stars
,但 stars
未定义。您需要在代码中进一步查找以找出为什么 stars
没有数值。
【讨论】:
问题是,我认为星星确实有一个数值。我将在我的帖子中添加更多代码。 编辑:代码已添加 您已经添加了传入stars
的代码,但没有添加任何显示何时设置stars
的值。您是否将其记录到控制台以确认它具有数值?
更新:不知道我做了什么,但我搞砸了一些东西,现在它可以工作了,谢谢!以上是关于如何修复 UnhandledPromiseRejectionWarning: CastError: Cast to number failed for value "undefined&qu的主要内容,如果未能解决你的问题,请参考以下文章