如何在Javascript+节点中传递参数?

如何在Javascript+节点中传递参数?,javascript,node.js,Javascript,Node.js,下面有一个函数,我想将一个参数传递到runQuery方法中,比如runQuery90,以选择任何所需的行计数。但由于错误和联系,我不知道该把它放在哪里。非常感谢您的指导 var runQuery = oracle.connect(connectData, function(err, connection, par1) { if (err) { console.log("Error connecting to db:", err); return;

下面有一个函数,我想将一个参数传递到runQuery方法中,比如runQuery90,以选择任何所需的行计数。但由于错误和联系,我不知道该把它放在哪里。非常感谢您的指导

var runQuery = oracle.connect(connectData, function(err, connection, par1) {
    if (err) {
        console.log("Error connecting to db:", err);
        return;
    }

    connection.execute("SELECT * FROM HR where rownum <" + par1, [], function(err, results) {
        if (err) {
            console.log("Error executing query:", err);
            return;
        }

        console.log(results);
        connection.close(); // call only when query is finished executing
    });
});
查看,您可以尝试按照以下未经测试的方式重构您的函数:

function runQuery(stmt, row_num, cb) {
    stmt.execute([row_num], function(err, count) {
        if (err) return cb(err);
        if (count !== 1) return cb(new Error("bad count: " + count));
        // We are done
        return cb();
    });
}

var statement = connection.prepare("SELECT * FROM HR where rownum < :1");
runQuery(statement, 90, function(err) {
    if (err) {
        console.log("Error executing query:", err);
        return;
    }

    console.log(results);
    connection.close(); // call only when query is finished executing 
});

准备好的语句包含要在select语句中传递的参数。这当然还没有经过测试,但希望能为您提供很好的指导,帮助您实现目标。

谢谢,这是我第一次尝试Javascript,来自VB世界。这确实是一个学习过程,但我一直在编写bash脚本,这就是为什么我想尝试一下js。再次感谢!为了让你的答案更好,最好明确指出OP代码中的安全漏洞,以及OP做错了什么。我做了后者,但当你写下答案时,我正在做前者,我决定退出。伟大的指挥家路易斯,会把建议考虑进去的。必须研究文档,看看是否有更好的方法将参数传递给语句,并找到批量插入/更新的示例。