[英]Mongoose findOneAndUpdate doesn't work with Stripe on everything else it works without side effects
我在向用户添加余额时遇到问题,我进行了条带测试结帐,并在处理数据并检查它是否正确之后。 在想为用户添加余额而不是添加例如 1+2=3 之后,我得到 1+2=12 就像附加数字一样。
这是用于添加余额的函数,它在其他函数中使用,但是当我添加 stripe 时,它才开始附加数字。
Users.findOne({ email: email }).then(user => {
Users.findOneAndUpdate(
{ email: email },
{ balance: user.balance + amount }
).then(result => {
return res.status(200).json({ message: "Success" });
});
});
我检查了金额,金额仍然与来自前端的金额相同,它从未改变或接触过原始状态。
balance
或amount
或两者都是字符串类型,因此它被连接而不是加法,请执行parseInt(user.balance) + parseInt(amount)
以确保它不是字符串
此外,您可以通过使用如下所示的$inc
运算符设置值来使用单个查询来实现您想要的,只需确保您的User
模型中的 balance 类型为Number
Users.findOneAndUpdate(
{ email: email },
{ $inc: {
balance: amount
}
})
.then(
result => {
return res.status(200).json({ message: 'Success' }
);
这将增加balance
内的 balance 与amount
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.