我有一个控制器,它正在获取输入费用详细信息并在用户表中更新它,但 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获取总费用
您正在更新名为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
},
});