PostgresExpress和NodeJS API-一个API端点中有多个查询



我有一个postgres数据库,在其中我将数据插入三个数据库表中。由于我想在一个按钮上将这些数据插入所有三个表中,我不想要三个不同的API端点。由于我是nodejs和postgres的新手,我无法将所有三个查询都放在一个api端点中。到目前为止,我一直被困在这个

app.post("/input",async(req,res)=>{
try{
const {a,b,c,d,e,f,g,h,i}= req.body;
const newentry=await pool.query(
"INSERT INTO num(a,b,c) VALUES($1,$2,$3) RETURNING *",
[a,b,c],
'INSERT INTO order(d,e,f) VALUES ($1,$2,$3) RETURNING *' ,
[d,e,f],
'INSERT INTO quantity(g,h,i) VALUES ($1,$2,$3) RETURNING *' ,
[g,h,i]
);

res.json(newentry.rows[0]);


} catch(err){
console.error(err.message);
}
});

您似乎想要通用表表达式:

with 
nums   as (insert into num (a, b, c)     values($1, $2, $3)),
orders as (insert into "order" (d, e, f) values ($1, $2, $3)
insert into quantity (g, h, i) values ($1, $2, $3);

这允许在一条语句中运行三个插入查询。

returning在这里没有真正的意义:您希望从这三个语句中返回哪些值?返回插入的值不是一种明智的方法:因为您首先传递了这些值,所以您已经知道了这些值。

最新更新