【发布时间】:2021-03-30 14:41:10
【问题描述】:
我是全栈开发的新手,我想部署一个项目,供不同用户在同一网络上使用。我在前端使用了 angular,在后端使用了 node/express 和 MySQL。在正确部署之前,出于测试目的,我正在从同一网络上的另一台计算机访问我的应用程序。但是,当我尝试登录时,应用程序会抛出错误。
VM12:1 POST http://localhost:3000/auth net::ERR_CONNECTION_REFUSED
这是我的后端代码:
server.js
const express = require('express');
const bodyParser = require('body-parser');
const cors = require('cors');
const mysqlConnection = require('./connection');
const routes = require('./routes');
const http = require('http');
const path = require('path');
var app = express();
app.disable('x-powered-by');
app.use(express.static(__dirname + '/dist'));
app.get('/*', (req, res) => res.sendFile(path.join(__dirname)));
app.use(cors());
app.use(bodyParser.json());
app.use(routes);
const port = process.env.PORT || 3000;
const server = http.createServer(app);
server.listen(port, '0.0.0.0', () => console.log(`Running on port ${port}`));
routes.js
router.post("/auth", (req, res) => {
var email = req.body.email;
var password = req.body.password;
var accessBasic = "Basic";
var accessPremium = "Premium";
mysqlConnection.query("SELECT * FROM authorization WHERE email = ? AND password = ?", [email,
password], (err, results) => {
if(!err)
{
var myJSON = JSON.stringify(results);
var check_email = myJSON.search(/email/i);
var check_password = myJSON.search(password);
var check_access = myJSON.search(accessBasic);
var check_access2 = myJSON.search(accessPremium);
if ((check_email != -1) && (check_password != -1) && (check_access != -1))
{
res.send("Successfully Authorized to Basic Access");
}
else if ((check_email != -1) && (check_password != -1) && (check_access2 != -1))
{
res.send("Successfully Authorized to Premium Access");
}
else
{
res.send("Authorization failed");
}
}
else
{
console.log("Connection to authorization failed: " + err.message);
}
})
})
我已在我的防火墙中允许传入连接并完成了所有操作,但是在尝试连接同一网络上我的系统以外的设备时,找不到我的端点拒绝连接的原因。我不知道怎么了。有人知道我在做什么错吗?我在我的系统上托管了我的应用程序,并从同一网络上的另一个访问它。
编辑:由于这个问题已经获得了相当多的意见,我想提一下,我没有更改上述任何防火墙设置。使用了 Windows 操作系统的所有默认防火墙设置。我刚刚部署并运行了该应用程序。
回答:我在前端遇到了问题。我的目标是 localhost,而不是应用程序所在系统的 IP 地址。有关详细信息,请参阅下面的答案。
【问题讨论】:
标签: node.js express angular-fullstack