mysql - 在nodejs中正确的异步mysql查询?

标签 mysql node.js asynchronous callback

对 Nodejs 完全陌生,在异步编程/回调方面遇到了困难。我想做的是:

在“发布”时,我想收集数据库表中的所有单词。我这样调用它: var Lesson_data = init_load_lesson();init_load_lesson() 的调用来 self 的“routers”文件中的 index.js,这是我的表达。 p>

如何构造正确的回调,以便 Lesson_data 是我的查询结果?

var mysql = require('mysql'); 
var connection = require('./connection'); 

var data = [];

function init_load_lesson()
{
  connection.connect();

  var queryString = "SHOW COLUMNS FROM LessonOneVocabulary";

  connection.query(queryString, function(err, rows, fields) {
    if (err) throw err;
    else
    {
      for (var i in rows)
      {
        data.push(rows[i].Fields);
        console.log(data);
      }
      console.log(data);
    }
  });

  connection.end();
}


module.exports = function() {
  load_lesson();
};

最佳答案

要添加回调(尝试更多功能,您就会掌握它的窍门):-

function init_load_lesson(callback) {
... // connect to database
  if (err) { 
   callback(err);
  } else {
   // process item
   callback(null, data);
  }
}

init_load_lesson(function(err2, results) {
  if (err2) { 
     // process error
  } else {
     // process results
  }
});

关于mysql - 在nodejs中正确的异步mysql查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25222453/

相关文章:

node.js - 了解空闲列表

node.js - 猴子补丁 Node 模块

c# - 抑制警告 CS1998 : This async method lacks 'await'

javascript - 如何使用 Protractor 中的 Promise 查询 mysql 数据库

mysql - 从具有相同列的不同表中获取值到数组中

SQL在特定行周围选择 "Window"

php - 这个连接语句有什么问题?

javascript - joinmonster 不是一个函数 - GraphQL

iphone - @synchronized block 和选择器 inBackground 和 afterDelay

mysql - 在 MySQL 中按年龄范围分组