我试图简单地获取路线中的照片位置并渲染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“
答案 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.
});