我正在使用:
- nodejs (0.6.8)
- expressjs (2.5.2)
- socket.io (0.8.7)
- Node -db-mysql (0.7.6)
目前代码工作正常,但我想知道是否有办法避免回调嵌套函数:
查询:
/*************************
Queries
**************************/
var sql_states = 'SELECT ...';
var sql_colors = 'SELECT ...';
var sql_languages = 'SELECT ...';
/* ... more queries */
嵌套查询的执行:
/*************************
Run queries
**************************/
db.query(sql_states).execute(function(error, r) {
if (error) {
req.session.error = 'Operation failed States';
res.redirect('back');
}
else if (r.length > 0)
{
for(var i in r){
states += '<option value="'+r[i]['id_state']+'">'+r[i]['name']+'</option>';
}
var colors = '';
db.query(sql_colors).execute(function(error, r) {
if (error) {
req.session.error = 'Operation failed Colors';
res.redirect('back');
}
else if (r.length > 0)
{
for(var i in r){
colors += '<option value="'+r[i]['id_color']+'">'+r[i]['name']+'</option>';
}
var languages = '';
db.query(sql_languages).execute(function(error, r) {
if (error) {
req.session.error = 'Operation failed Languages';
res.redirect('back');
}
else if (r.length > 0)
{
for(var i in r){
languages += '<option value="'+r[i]['id_language']+'">'+r[i]['name']+'</option>';
}
...
欢迎任何建议。
谢谢。
最佳答案
您可以使用async
模块可以干净地管理您可以想象的任何异步流控制场景。
关于node.js - Nodejs 和 Expressjs 避免嵌套回调查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13662649/