我需要在单个API请求中填写多个 postgres 表。每次我在表上插入一行时,我都会检索插入的行的ID,并在下一个查询中对其进行引用。
例如,我可以在执行单个查询时检索插入的行的ID,并将其返回给客户端:
使用此代码,结果返回给客户端,我可以在客户端上找到user_id:
app.post('/api/user/create', (req, res, next) => {
var query = 'INSERT INTO public.user (user_name, password) VALUES (\''
+ req.body.user_name + '\', \''
+ req.body.password + '\' RETURNING id_user);';
pool.query(query, (err, result) => {
if (err) {
res.status(200).send("no insertion);
}
res.status(200).json(result.rows);
})
});
使用此代码,结果不会返回给客户端,并且我无法在客户端上找到user_id:
app.post('/api/user/create', (req, res, next) => {
var query = 'INSERT INTO public.user (user_name, password) VALUES (\''
+ req.body.user_name + '\', \''
+ req.body.password + '\' RETURNING id_user);';
pool.query(query, (err, result) => {
if (err) {
res.status(200).send("no insertion);
}
*//Try to inspect result.rows*
})
});
当我想在服务器中获取id_user时,结果始终是不确定的。我已尽力而为,结果result.rows对象仍然未定义。 JSON.stringify(),result.rows [0] .id_user,...
我从不访问 id_user 字段的值。
怎么可能?
结论
我没有找到直接在服务器上操纵池查询结果的方法。我花了太多时间在这上面。它在服务器上始终保持 undefined ,但是对客户端的响应具有正确的结果。
因此,我决定在需要此值和其他值时一直进行存储过程。
谢谢您的帮助。
ps:为什么这篇文章被投票为-1?