[英]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.