node js 在 sql 中将所有值保存为 0

node js saving all values as 0 in sql

我正在使用 express 和 mysql 在 nodejs 上制作 API。在 POST 方法中我没有收到任何错误,但在 mysql 上将所有值存储为 0,如下所示:

1
0
0.00
0000-00-00
0

(1为ID自增)

要像这样使用 POSTMAN 测试 post 方法:

{
    "Id" : null,
    "Concepto" : "Desde POSTMAN",
    "Monto" : 10,
    "Fecha" : "1988-05-05",
    "Tipo" : "Ingreso"
}

这是函数

router.post('/', (req, res) => {
    const { id,concepto,monto,fecha,tipo } = req.body; 
    mysqlConnection.query("INSERT INTO operaciones (Id, Concepto, Monto, fecha, Tipo) VALUES (?)", [req.body],(err, rows, fields) => {
      if (!err) {
        res.json({Status: "Operacion Saved"});
      } else {
        console.log(err);
      }
    });
});

任何建议,谢谢

没有看到您的 table 定义,我假设数据库引擎默认为您在查询传递空值时获得的 0 值。

您应该为要传递给查询的每个输入使用 ? 占位符。
此外,实际上并没有使用解构值。

请尝试以下代码:

router.post('/', (req, res) => {
    const { id, Concepto, Monto, Fecha, Tipo } = req.body;
    mysqlConnection.query("INSERT INTO operaciones (Concepto, Monto, Fecha, Tipo) VALUES (?, ?, ?, ?);", [Concepto, Monto, Fecha, Tipo], (err, results, fields) => {
    if (!err) {
        res.json({ Status: "Operacion Saved" });
    } else {
        console.log(err);
    }
    });
});

注意 id 未在您提到的查询中使用,它被设置为 auto-increment。