CNode

nodejs 同步查询问题

问答
Lliuff1988发布于12 年前最后回复12 年前2 回复6137 浏览0 收藏

异步代码如下,想问如何将query方法修改成同步的

var p = pools.getOrCreate('postgres://'+config.user+':'+config.password+'@'+config.host+':'+config.port+'/'+config.database);

//查询
exports.query = function(sql, cb){
	
	if(!cb) return;

    try{
	
        p.acquire(function(err, client) {
            if (err) {
                cb(false);
            } else {
                client.query(sql, [], function(err,res,fields){
                    p.release(client);
                    var rows = res?res.rows:res;
                    cb(rows);
                });
            }
        });

    }catch(e){
        cb(false);
    }

};

\n```
查看回复

回复 (2)

1
119786155#1·12 年前

我了个去,好狰狞的try catch!

N
ngot#2·12 年前

不用node,换fibjs就能同步了。不然,可以试试Promise,Async,Generator等等,在形式做成像同步的,虽然都非常ugly

参与回复
登录后即可参与回复。登录