首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NodeJS mysql应用程序冻结无错误-如何诊断

问NodeJS mysql应用程序冻结无错误-如何诊断
EN

Stack Overflow用户
提问于 2020-04-26 02:50:33
回答 1查看 39关注 0票数 0

我的Node应用程序在运行我编写的函数时冻结。代码将在第11个循环的特定行处停止执行,没有错误消息。不能向应用程序发出进一步的请求,必须重新启动应用程序。数据在每次运行时都会发生变化,并且总是第11次迭代。

它调用的函数比较复杂,所以我不能把代码放在这里。我的问题是,当您没有看到失败通知时,如何诊断一段代码?我假设问题是与mysql相关的,因为在下面代码的简化版本中记录的最后一件事是'Org request start11‘-没有任何错误消息。但是我不明白在不进入回调的情况下,代码怎么会在这里停止执行。

示例代码如下:

代码语言:javascript
复制
async function processDataset(datasets){       
     for (let i = 0; i < datasets.length; i++) {
          const dataset= datasets[i];
          const orgData = await getOrgData(dataset.id);
          const parsedDataset = await processDataset(dataset, orgData);
     }
}



function getOrgData(datasetId) {
   return new Promise(function (resolve, reject) {
      console.log("Org request start", datasetId);

      connection.getConnection(function (err, connection) {
         console.log("got connection");
         if (err) {
            console.log(err);
            reject(err);
         }

         connection.query("select * from orgs;", function (error, rows, fields) {
            console.log("query returned");
            connection.release();
            if (error) {
               console.log(error);
               reject(error);
            }  
            resolve(rows);
         });
      });
   });
}

运行节点v12 / Express,MySQL5.5

EN

回答 1

Stack Overflow用户

发布于 2020-04-26 18:11:17

所以我发现问题在于,我在其他地方运行了一个查询,在调用的第二个函数中缺少释放mysql连接的一行。添加此功能解决了错误。我不明白为什么这不会触发错误,或者我怎么会用更系统的方法来诊断这个问题,所以我想听到任何评论。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61430855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档