【发布时间】:2016-02-02 04:46:13
【问题描述】:
我对 nodejs 很陌生。我正在使用 oracledb 并希望以同步顺序进行查询。因此,一旦执行第一个查询,则查询的输出将用于第二个查询。我查看了 async.waterfall 并写了下面的代码。以同步方式调用函数是否正确?提前致谢。第一个查询可能比第二个查询花费更多的时间。
var update = function(fnParam1, fnParam2){
oracledb.maxRows = 10000;
oracledb.getConnection(
{
user : dbConfig.user,
password : dbConfig.password,
connectString : dbConfig.connectString
},
function(err, connection)
{
if (err) { console.log(err.message); return; }
async.waterfall([
function(callback) {
connection.execute("select column1 from table1 where param1 =:nm",[fnParam1],
function(err, result)
{
if (err) { console.log(err); return; }
column1 = String(result.rows[0][0]);
});
callback(null, column1,connection);
},
function(column1, connection,callback) {
connection.execute("select count(*) from table2 where column1 = :par1 and column2= :par2",[column1,fnParam2],
function(err, result)
{
if (err) { console.log(err); return; }
var count = String(result.rows[0][0]);
console.log("count result:" + count)
});
callback(null, count);
}
],
function (err, result) {
console.log("Done" + result);
});
});
};
【问题讨论】:
-
代码看起来不错,有什么问题?
标签: javascript node.js oracle express node-async