【发布时间】:2015-01-08 14:43:02
【问题描述】:
我正在使用 MariaSQL 编写 NodeJS v0.10 应用程序。
我想创建一个函数来返回一行的id,如果该行不存在,创建它然后返回id。
这是我目前所拥有的:
TuxDb.prototype.createIfNEDrinkCompany = function(drinkCompany) {
this.client.query("insert into drink_company(drink_company_name) values(:drink_company) on duplicate key update drink_company_id=drink_company_id",
{'drink_company' : drinkCompany})
.on('result',function(res) {
res.on('end',function(info){
if (info.insertId > 0) {
return info.insertId;
} else {
this.client.query("select drink_company_id from drink_company where drink_company_name = :drink_company",{'drink_company' : drinkCompany})
.on('result',function(res){
res.on('row',function(row){
return row.drink_company_id;
});
});
}
});
});
}
现在的问题是,由于它是异步的,所以函数在返回值之前就结束了。
我该如何解决这个问题?
【问题讨论】:
-
您添加了一个名为
mariasql的新标签,您介意告诉我它是什么吗? googling 没有出现太多。 -
在 google 上搜索 node-mariasql