我正在制作一个需要用户身份验证的节点应用程序。我通过HTML表单从用户那里获得了用户名和密码,并对Confluence进行了API调用,以确保此登录信息有效。当我运行npm start
(即nodemon server.js
)时,此身份验证过程在本地运行(在localhost:3000上),但是当我尝试在本地的heroku-heroku local
中运行时,此身份验证过程无效。请注意,我已经设置了我的HTTP_PROXY和HTTPS_PROXY环境变量,并且我的代码是最新的(我已经使用git将代码推送到heroku了。)
// set up port
const port = process.env.PORT || 3000;
const app = express();
app.post('/login', (req, res) => {
axios.get(API_URL, {
auth: {
username: req.body.username,
password: req.body.password
}
})
.then( (response) => {
console.log('status code: ', response.status);
if (response.status == 200) {
res.redirect('/home');
}
else {
loginError = 'Login failed. Please try again.';
res.render('login', {error: loginError});
}
})
.catch( (error) => {
console.log(error);
// res.send(error);
loginError = 'Username or password is incorrect. Please try again.';
res.render('login', {error: loginError});
})
})
在localhost:3000中,登录过程可以顺利进行,没有任何问题。但是,在localhost:5000(heroku local
的端口)中,它拒绝让我登录。这是我的错误的摘要:
2:20:22 PM web.1 | { Error: connect ECONNREFUSED 127.0.0.1:80
2:20:22 PM web.1 | at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1106:14)
2:20:22 PM web.1 | errno: 'ECONNREFUSED',
2:20:22 PM web.1 | code: 'ECONNREFUSED',
2:20:22 PM web.1 | syscall: 'connect',
2:20:22 PM web.1 | address: '127.0.0.1',
2:20:22 PM web.1 | port: 80,