Qui*_*inn 4 postgresql post node.js
我正在创建一个带有插入查询的发布请求。
如何同时将插入的值返回到浏览器?
app.post('/car_create', (req, res) => {
const make = req.body.create_make;
const model = req.body.create_model;
client.query(`INSERT INTO cars (make, model) VALUES ($1, $2)`, [make, model], (error, results) => {
if (error) {
throw error
}
res.status(201).send(`Car added with ID: ${results};`);
console.log(res);
res.end();
});
});
Run Code Online (Sandbox Code Playgroud)
我如何从响应中检索数据?
我需要以某种方式修改这一行吗?
res.status(201).send(`Car added with ID: ${results};`);
Run Code Online (Sandbox Code Playgroud)
首先,您需要在将值插入 PostgreSQL 后返回它们。为此,请RETURNING在查询中添加一个子句,如下所示:INSERT INTO cars (make, model) VALUES ($1, $2) RETURNING id, make, model。RETURNING如果您有并且需要更多列,请在子句中添加更多列。
然后在回调中,results变量应该包含有关您的查询的信息,包括它返回的内容(在rows键中)。您可以通过多种方式将其发送给客户端,但要以与当前类似的方式返回它,您可以这样做:
const {id, make, model} = result.rows[0]; // rows is an array of rows returned, and since we do a single INSERT we only have one row, with the returned columns from the query
res.status(201).send(`Car added with ID ${id}, make "${make}" and model "${model}".`);
Run Code Online (Sandbox Code Playgroud)
如果您想在前端使用此数据,以 JSON 形式发送数据会更容易、更方便,如下所示:res.status(201).send(results.rows[0]);
| 归档时间: |
|
| 查看次数: |
2230 次 |
| 最近记录: |