在 express 中使用 sequelize 原始查询插入后显示数据

show data after inserted using sequelize raw queries in express

我正在尝试使用 sequelize 发送带有原始查询的插入数据,然后显示它。下面是我的代码:

const c_product_post = async (req, res) => {
try {
    const sql = `INSERT INTO products (p_name, p_price, p_stock, p_review, "createdAt", "updatedAt")
    VALUES ('${req.body.product_name}', ${req.body.product_price}, ${req.body.product_stock}, ${req.body.product_review}, now(), now());`
    const postData = await Product.sequelize.query(sql)
    // await postData.save()
    res.send({
        message: "success add new product",
        data: postData
    })
}
catch (err) {
    res.send({
        message: err
    })
  }
}

我想要实现的是在插入数据后显示它(见下图红色部分):

在您的查询中添加 RETURNING 子句。试试这个

INSERT INTO products (p_name, p_price, p_stock, p_review, "createdAt", "updatedAt")
    VALUES ('${req.body.product_name}', ${req.body.product_price}, ${req.body.product_stock}, ${req.body.product_review}, now(), now()) 
RETURNING *;

请注意,您的方法很容易出现 SQLi。考虑使用准备好的语句而不是文本替换。