【发布时间】:2017-09-04 07:30:34
【问题描述】:
我在 Digital Ocean 上创建了一个 Node.js Droplet。
我已通过 FileZilla 连接到服务器并上传了所有 Node.js 文件(index.js、package.json 等)。
我正在尝试使用node index.js 启动服务器。它说
App is running at http://localhost:3000 in development mode
Press CTRL-C to stop
但是,我无法在 Digital Ocean 提供的公共 IP 地址和localhost:3000 上看到该网站。
如何正确启动 Node.js 服务器?
编辑
我正在用这个设置服务器(index.js的内容):
const express = require('express');
const app = express();
app.set('port', process.env.PORT || 3000);
app.listen(app.get('port'), () => {
console.log('App is running at http://localhost:%d in %s mode', app.get('port'), app.get('env'));
console.log(' Press CTRL-C to stop\n');
});
【问题讨论】:
-
谁知道...这是您的应用程序,您如何指定绑定主机取决于您的代码!只有你能回答这个问题。您想绑定到
::或0.0.0.0的某个位置(这是一个伪地址,表示您要分别在IPv6 或IPv4 中侦听所有接口)。您还需要确保没有防火墙阻止:3000... 但谁知道如何帮助您,因为您甚至没有告诉我们您正在运行什么操作系统。 -
好的,既然您已经发布了代码……您的应用程序已经在监听所有接口,所以这将归结为防火墙配置。
-
对不起。我刚刚在 Digital Ocean 上安装了一个带有 Node.js 的 Droplet。 Digital Ocean 的操作系统是 Ubuntu。我自己的操作系统是 OSX。它说我没有在cloud.digitalocean.com/networking/firewalls 上创建任何防火墙。
-
可能是您的 Ubuntu 系统上的防火墙,而不是 Digital Ocean 云防火墙。
标签: javascript node.js server digital-ocean droplet