具有 TotalExpense 列的用户表未更新

问题描述 投票:0回答:1

我有一个控制器,它正在获取输入费用详细信息并在用户表中更新它,但 TotalExpense 列没有更新 postAddExpense = async (req, res, next) => { //post总是使用body 尝试 { const 金钱 = req.body.money; const 描述 = req.body.description; const 选项 = req.body.options; console.log('钱=' + 钱); console.log('描述='+描述); console.log('选项 = ' + 选项); console.log('userid = ' + req.user.id); if (钱 == '' || 钱 == 未定义 || 描述 == '' || 描述 == 未定义 || 选项 == '' || 选项 == 未定义) { return res.status(400).json({ message: '输入字段为空' }) }

    const expenseData = await Expense.create({
        money: money,
        description: description,
        options: options,
        userid: req.user.id
    });
    //to keep the total money updated spend by the user every time new expense is added 
    const totalExpense = Number(req.user.totalExpense) + Number(money);
    console.log('totalExpense = ' + totalExpense);
    //this returns promise
    const [updatedRowsCount, updatedRows] = await User.update({
        totalExpenses: totalExpense
    },
        {
            where: {
                id: req.user.id
            },
            
        });

    console.log('Updated rows count:', updatedRowsCount);
    console.log('Updated rows:', updatedRows);  

    res.status(200).json({ newExpenseData: expenseData, message: 'Data added successfully' })
}
catch (err) {
    console.log('post expense err = ' + err);
    return res.status(500).json({ error: err })
}

}

想要通过用户ID获取总费用

mysql node.js express sequelize.js
1个回答
0
投票

您正在更新名为totalExpenses的列,但在您的代码中,您正在使用totalExpense并确保User表的Sequelize模型具有正确的字段名称(totalExpenses),请尝试以下代码:-

const totalExpenses = Number(req.user.totalExpenses) + Number(money);
console.log('totalExpenses = ' + totalExpenses);

const [updatedRowsCount, updatedRows] = await User.update({
    totalExpenses: totalExpenses // <-- Corrected column name
},
{
    where: {
        id: req.user.id
    },
});
© www.soinside.com 2019 - 2024. All rights reserved.