gpt4 book ai didi

node.js - 是否可以以阻塞/同步方式使用 Node js Postgres 客户端

转载 作者:行者123 更新时间:2023-11-29 12:37:34 24 4
gpt4 key购买 nike

我正在寻找一个 Node js 客户端来连接到 PostgreSQL 8.3 并以同步阻塞模式运行我的查询(用于脚本而非网络服务器)。

我目前正在使用 https://github.com/brianc/node-postgres效果很好,但它只支持异步。

谢谢,

肖恩。

最佳答案

您可以在串行模式下使用异步以同步方式运行查询并避免多个回调结构:Async.series

pg.connect(configDB.connectionString, function(err, client, done) {
if (err) { return console.error(err); }

var condition = true;
async.series([
CreateExtensions,
PushSQL,
function (next) {
if (condition) {
UpdateTable(id, name, next);
}
else {
next();
}
}
],
function(err, results) {
if (err) { console.error(err); }
client.end();
pg.end();
});

function CreateExtensions(callback) {
var queryConfig = 'CREATE EXTENSION postgis; CREATE EXTENSION hstore;';
client.query(queryConfig, function(err) {
return callback(err);
});
}

function PushSQL(callback) {
var queryConfig = fs.readFileSync("./database/cmdb.sql", 'utf8');
client.query(queryConfig, function(err) {
return callback(err);
});
}

function UpdateTable(id, name, callback) {
var queryConfig = "UPDATE table SET name = '" + name + "' WHERE id = " + id + ";";
client.query(queryConfig, function(err) {
condition = false;
return callback(err);
});
}
});

关于node.js - 是否可以以阻塞/同步方式使用 Node js Postgres 客户端,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25266435/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com