在 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。考虑使用准备好的语句而不是文本替换。
我正在尝试使用 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。考虑使用准备好的语句而不是文本替换。