簡體   English   中英

Mongoose findOneAndUpdate 不適用於 Stripe 的其他所有工作,沒有副作用

[英]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" });
  });
});

我檢查了金額,金額仍然與來自前端的金額相同,它從未改變或接觸過原始狀態。

balanceamount或兩者都是字符串類型,因此它被連接而不是加法,請執行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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM