【发布时间】:2017-09-25 17:37:14
【问题描述】:
我正在调用函数,以便使用node.js 的mysql 模块将一些值插入到数据库表中。该函数在 for 循环内调用,我可以在函数内获取每个 INSERT 查询的最后一个 insertId。
我的目的
我想将这些 id's 存储到一个数组中,以便稍后在我的代码中使用它们,但我不能这样做。
- 函数调用
for(var i=0;i<some_number;i++){
if (<something is true>){
var lastid = [];
//Function calling
function_a(x, y, z, w, function(error, result) {
if(!error){
lastid.push(result.insertId);
}
//To Do
else{}
});
}
}
- 功能
function function_a(a, b, c, d, callback){
//Connection to the DB
const con = mysql.createConnection({
host: 'host',
user: 'user',
password: 'password',
database: 'database'
});
//DB query
var query = "INSERT INTO my_table (column1, column1, column1, column1) VALUES ('"+a+"', '"+b+"', '"+c+"', '"+d+"')";
con.query(query, (err, rows) => {
var e = rows.insertId;
return callback(err, e);
});
con.end();
}
问题是我不能在函数外使用 id。
知道我该怎么做吗?这是关于变量范围的吗?
【问题讨论】:
标签: javascript node.js