【问题标题】:NODE JS 504 error on server, but works on localhost服务器上的节点 JS 504 错误,但在本地主机上工作
【发布时间】:2020-01-17 17:12:14
【问题描述】:

我试图简单地获取路线中照片的位置并渲染 product.ejs 文件:

 //Show individual product info
router.get('/product/:id', async function(req, res, next) {
  let filesFromFolder;

  Promise.all([
    database.retreaveImage(req.params.id)
  ]).then(resultArr => {
    filesFromFolder = resultArr[0];


    res.render('product.ejs', {
      productName: req.params.id,
      data: filesFromFolder

    });
  });
});

它可以在本地主机上运行,​​现在我将我的 route.js 文件导入到真实服务器中,当我尝试打开产品时,它会抛出 504 错误。

尝试按照此说明进行操作,但没有帮助。

Getting 504 GATEWAY_TIMEOUT NodeJs

grep -i "504" /var/log/nginx/access.log

82.135.208.60 - - [16/Sep/2019:07:52:25 +0000] "GET /product/line_fan_pool HTTP/1.1" 504 594 "http://13.58.120.242:3000/horizontal" "Mozilla/5.0 (Windows NT 10.0; Win64 ; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" 82.135.208.60 - - [16/Sep/2019:08:03:15 +0000] "GET /product/line_pool HTTP/1.1" 504 594 "http://13.58.120.242:3000/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36" 82.135.208.60 - - [16/Sep/2019:08:10:19 +0000] "GET /product/line_pool HTTP/1.1" 504 594 "http://13.58.120.242:3000/" "Mozilla/5.0 (Linux; Android 6.0; Nexus 5Build/ MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Mobile Safari/537.36"

【问题讨论】:

  • 这是在 nginx 代理后面吗?代理对此有何看法?您在日志中看到任何内容吗?另外,您能否测试一些不需要数据库访问权限的站点以缩小可能的原因?
  • 其他网站运行良好,只有这个会抛出 504。我用更多信息更新了问题

标签: node.js express nginx


【解决方案1】:

问题是,亚马逊网络服务器不支持旧版本的 MYsql,所以我不得不更新它。这解决了我的问题。必须在 pm2 监控中查看错误。

【讨论】:

    【解决方案2】:

    当我的http-proxy-middleware 内部发生故障时,我在节点expressjs 应用程序中遇到了504

    这是一个未捕获的 Promise 错误,因此服务器静默超时进入 504,而不是报告错误。

    因此,永远不要忘记在 Promise 掉落时抓住它们。 (这就是这里发生的事情吗?)

     //Show individual product info
    router.get('/product/:id', async function(req, res, next) {
      let filesFromFolder;
    
      Promise.all([
        database.retreaveImage(req.params.id)
      ]).then(resultArr => {
         //...
      }).catch(err => next); // catch and burn.
    });
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多