服务器上的NODE JS 504错误,但在本地主机上有效

时间:2019-09-16 20:34:43

标签: node.js express nginx

我试图简单地获取路线中的照片位置并渲染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

    });
  });
});

它可以在localhost上运行,现在我将我的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” 504594“ http://13.58.120.242:3000/horizontal”“ Mozilla / 5.0(Windows NT 10.0 ; Win64; x64)AppleWebKit / 537.36(KHTML,例如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” 504594“ http://13.58.120.242:3000/”“ Mozilla / 5.0(Windows NT 10.0; Win64; x64)AppleWebKit / 537.36(KHTML,例如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” 504594“ http://13.58.120.242:3000/”“ Mozilla / 5.0(Linux; Android 6.0; Nexus 5Build / MRA58N)AppleWebKit / 537.36(KHTML,例如Gecko)Chrome / 76.0.3809.132移动Safari / 537.36“

2 个答案:

答案 0 :(得分:0)

问题在于,亚马逊网络服务器不支持MYsql的旧版本,因此我不得不对其进行更新。那解决了我的问题。不得不在pm2监视器中观察错误。

答案 1 :(得分:0)

当我的 504 内部出现问题时,我在我的节点 expressjs 应用程序中遇到了 http-proxy-middleware

这是一个未捕获的 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.
});