javascript - res.send() 在 Node js中功能代码执行之前执行

标签 javascript mysql node.js express callback

我是 node js 的新手。在我的应用程序中,我正在查询 MySql 数据库并使用 Node js 处理和查看处理结果。如果我的查询返回空数据,那么我将执行另一个查询并执行该过程。但是我的 res.send(finaldate) 代码在功能过程完成之前被执行。如何解决这个问题。 res.send(finaldata) 在“do require stuff for finaldata”之前先执行;

var finaldata ={};
//first query
var result = connection.query('myquery', function(err, data_rows){
if(!err){
  //second
  //doing one more Query for some other records from DB (second query)
  connection.query('myquery', function(err, rows, fields){
   if(0 < rows.length){
     finaldata = //do require stuff for finaldata 
   }
   else{
      //third
      //do the second query with some condition
      connection.query(queryText, function(err, rows, fields) {
            finaldata = //do require stuff for finaldata 
      })
  }
 res.send(finaldata);

  });
 }

});

最佳答案

欢迎来到 NodeJS 和异步计算的世界!

问题是 res.send 在第二个 connection.query 完成之前执行。为了解决这个问题,您将 res.send 放在回调中。

var result = connection.query('myquery', function(err, data_rows) {
    if (!err) {
        //second
        //doing one more Query for some other records from DB (second query)
        connection.query('myquery', function(err, rows, fields) {
            if (0 < rows.length) {
                // do something
                res.send( /* send something*/ );
            } else {
                //third
                //do the second query with some condition
                connection.query(queryText, function(err, rows, fields) {
                    // do something
                    res.send( /*send something*/ ); // 2nd res.send
                })
            }

        });
    }

});

关于javascript - res.send() 在 Node js中功能代码执行之前执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44155111/

相关文章:

mysql - 如何将 MySQL 5.5.40 升级到 MySQL 5.7

php - 如何设置 PHP 和 MySQL?

node.js - 如何获得 IBM Watson Assistance 用户界面的意图置信度?

linux - 内部脚本和样式表总是指向索引文件 (Node.JS)

javascript - 编写 CPU 密集型客户端 HTML5 应用程序从根本上来说是错误的吗?

javascript - CKEDITOR.inline 首次加载

javascript - 用正则表达式分割字符串 - 正则表达式太贪婪

javascript - javascript中获取内部函数的返回值

php - 在电子商务网站上运行后台进程

javascript - 使用 NodeJS 获取 API 数据并写入 MongoDB