我已将一个应用程序克隆到我的 Droplet,但现在它无法正常工作,也没有显示任何错误我是编程新手,任何人都可以帮助我部署它。 我已经在上面创建了 droplet 安装节点 js、npm 和 mongodb,并且一切正常, 我的 app.js 代码是 让端口 = 80;
mongoose.connect(process.env.dbURI, dbOptions)
.then((conn) => {
app.listen(port,'165.22.223.8');
console.log('connection success port:' +port);
})
.catch((err) => console.log(err));
答案 0 :(得分:0)
我怀疑 (!?) 165.22.223.8
不是您的 DigitalOcean Droplet 的 IP 地址。如果这是 Droplet 的正确公共 IP 地址,则可能是您尚未将 Droplet 的防火墙配置为允许端口 80 上的流量。请参阅下面的调试。
注意 端口 <1024(即 80
)需要 root。这可能是您面临的另一个问题。您可能希望在开发时尝试(常用的)8080
而不是 80
。如果您这样做,请将出现的 80
替换为以下内容中的 8080
。
命令 app.listen
尝试将 Express 服务器绑定到 port
上的特定 IP 地址。
我认为您可以完全避免指定主机名而只需使用:
app.listen(port);
要调试(无论哪种情况),请通过 ssh 连接到 Droplet 并尝试 curl
访问本地主机的端口 80(假设这确实是 port
的值),即:
HOST="localhost"
PORT="80" # Or 8080
curl \
--request GET \
http://${HOST}:${PORT}
成功后,您可以尝试远程访问服务器。您需要确定 Droplet 的公共 IP 地址,然后:
HOST=[[REPLACE-WITH-DROPLET-IP]]
PORT="80" # Or 8080
curl \
--request GET \
http://${HOST}:${PORT}