REST API与node.js CRUD与Postgres数据库
REST API with node.js CRUD with Postgres Database
我是新的node.js和javascript除了CRUD操作。我想用node.js与postgresql数据库创建一个rest api,以便PUT POST UPDATE DELETE方法通过JSON工作。对不起,如果我的问题不清楚,但这是我所拥有的,我不能完成的。
apiRoutes.get('/db/:id', function(request, response){
pg.connect(process.env.DATABASE_URL, function(err, client, done) {
client.query('SELECT * FROM test2 WHERE $1 = test2.id;', [request.params.id], function(err, result) {
done();
if (err){
console.error(err); response.json({success:"false", message: err});
}
else{
response.json({success: "true", data: result.rows} );
}
});
});
});
,下面是通过PUT方法更新数据库数据的代码。
apiRoutes.put('/db/:id', function(request, response){
var data1 = {name: request.body.name};
client.query('UPDATE test2 SET name=($1) WHERE id=($2)', [data1.name], [request.params.id]);
pg.connect(process.env.DATABASE_URL, function(err, client, done) {
client.query('SELECT * FROM test2 WHERE $1 = test2.id', [request.params.id], function(err, result) {
done();
if (err){
console.error(err); response.json({success:"false", message: err});
}
else{
response.json({success:"true", data: result.rows} );
}
});
});
});
当我点击PUT在邮差,首先它显示的数据,包括名称,但它从数据库中删除,然后即使我点击raw然后编辑数据,然后发送它,它不会保存,它返回到null, name = null。对不起,如果我没有说清楚,但如果有人理解我只是一点,一点帮助将是伟大的,这对我来说很重要,完成这个。谢谢你。
你的代码中有两个问题:
-
调用
done()
,在调用更新查询之前断开与数据库的连接,然后在断开与数据库的连接时调用client.query
。 -
修复第一个参数后,必须更改第二个参数,以便更新,将
function(err, result)
作为最后一个参数并根据结果响应。如果异步调用是同步调用,就不能像这里那样处理它。完成后,才可以调用done()
。
如果你想简化你的数据库使用,看看pg-promise.
我想要实现的是,如果我在Postman throw json中输入数据,数据库将更新该数据,它将显示数据库中的新数据以及数据库中已经存在的数据。这是我解决的代码:
apiRoutes.put('/db', function(request, response){
pg.connect(process.env.DATABASE_URL, function(err, client, done) {
var data1 = {id: request.body.id, name: request.body.name, lastname: request.body.lastname, address: request.body.address, phonenumber: request.body.phonenumber, email: request.body.email};
//Update data in the database
client.query("UPDATE Contact SET name = $1, lastname = $2, address = $3, phonenumber = $4, email = $5 WHERE id = $6", [data1.name, data1.lastname, data1.address, data1.phonenumber, data1.email, data1.id]);
//Display after updated
client.query('SELECT * FROM Contact;', function(err, result) {
done();
if (err){
console.error(err); response.json({success:"false", message: err});
}
else{
response.json({success:"Data updated successfuly in the database.", data: result.rows} );
}
});
});
});
相关文章:
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 如何通过php页面将数据库值检索到jquery自动完成框中
- 使用javascript从数据库中添加表
- 通过CSV文件上载更新数据库表
- 平均值:无法将数据更新到数据库
- 如何使用 Angular JS 将数据保存在数据库中
- Rails-JQueryUIAutcomplete和AJAX不工作,可以't连接到数据库
- 在谷歌地图上绘制位置数据库
- PHP:显示sqlite数据库中的html格式数据,使用tinymce保存
- 将地理编码结果转换为php变量以发布到mysql数据库
- 从数据库中检索字段,而不模拟它们
- javascript:将数据库中的数据插入到html5文本字段中
- 使用 sequelize ORM 连接到节点上的 Amazon RDS Postgres 数据库.js出现问题
- 环回 + 用户模型迁移到 Postgres 数据库
- 在安装流星postgres之前有什么步骤吗?我无法连接数据库
- 如何通过sequelize-postgres数据库和迁移在服务器重启后幸存下来
- REST API与node.js CRUD与Postgres数据库
- Postgres + Node,将开发环境迁移到Windows,并且在连接数据库时遇到认证问题
- 我们如何从数据库中使用 jquery 读取 xml 文件(postgres)
- 如何进行身份验证以连接到Postgres中的数据库