我正在尝试将具有代理服务器的应用程序部署到Heroku。我的请求全部在localhost上运行,但是一旦我推送到Heroku,就会遇到此错误:
2019-10-15T16:48:08.600492+00:00 app[web.1]: [HPM] Error occurred while trying to proxy request /api/badge/DkFayaVT from mywebsite.herokuapp.com to http://localhost:3001 (ECONNREFUSED) (https://nodejs.org/api/errors.html#errors_common_system_errors)
2019-10-15T16:48:08.606302+00:00 heroku[router]: sock=backend at=error code=H18 desc="Server Request Interrupted" method=POST path="/api/badge/DkFayaVT" host=mywebsite.herokuapp.com request_id=40a9308f-e626-4aa1-8eac-7aaf93d3d90e fwd="68.184.90.137" dyno=web.1 connect=1ms service=21ms status=503 bytes=243 protocol=https
我猜测问题出在与尝试代理到本地主机路由的应用有关,但是我不确定如何解决。有关更多背景信息,以下是我设置代理的方式:
const proxy = require('http-proxy-middleware');
module.exports = function(app) {
app.use('/api', proxy({
target: 'http://localhost:3001',
changeOrigin: true
}));
};
这是我要发布到的路线的控制器:
const base64img = require('base64-img');
module.exports = async (req, res) => {
base64img.img(req.body.image, `./badges/${req.params.id}`, 'image', function(err, filepath){
if (err) {
res.json(err)
}
console.log(filepath)
return res.json(filepath)
})
}
基本上,此路由采用base64网址并将其转换为和图像,然后将该图像添加到应用程序的文件结构中。
关于我在做什么错的任何想法或修复代理的提示吗?