Ich bin neu in Nodejs Programmierung, ich schreibe einige Ruhe-API-Aufrufe in Nodejs und MySQL, ich möchte meine Tabelle durch Nodejs MySQL Abfragen aktualisieren, aber hier bin ich einige Async-Callbacks konfrontiert issue.I wollen Abfragen ausführen serially.I Versprechen auch versucht, noch gleiche ErgebnisWie schreibe ich serielle Ausführung von mysql Abfragen in Nodejs
Code:
app.post("/storeData",function (req,response)
{
console.log(req);
var note = req.body.note;
var time = req.body.time;
var userid = req.body.userid;
var title = req.body.title;
var data = {
"code" : 0,
"message" : "fail"
};
if(note!=null && time!=null && userid!=null && title!=null)
{
var flag = checkIdExist(userid); // this one is executing async
if(!flag)
{
var query = "insert into todo values('',?,?,?,?)" ;
connection.query(query,[note,userid,title,time],function (err,rows,fields)
{
if(!err)
{
data.code = 200;
data.message = "success";
}
response.json(data);
});
}
});
}
else
{
data.code = 0;
data.message = "parameters are missing";
}
function checkIdExist(id)
{
var query = "select * from todo where userid = ? ";
connection.query(query,[id],function (err,rows,fields) {
if(err)
{
return false
}
else if(rows.length == 0)
{
return false
}
});
return true
}
Wenn Sie können, versuchen, so etwas wie verwenden [Sequelize] (http://sequelizejs.com), die Sie verspricht gibt, die mit Flusskontrolle hadern einfacher sind. ['Promise.each'] (http://bluebirdjs.com/docs/api/promise.each.html) ist eine sehr einfache Möglichkeit, eine Reihe von asynchronen Aufrufen nacheinander auszuführen. Wenn Sie stattdessen Rückrufe wünschen, kann Ihnen die Bibliothek "Async" (https://github.com/caolan/async) helfen. – tadman