如何通过Node.js在共享托管上运行简单的“ Hello World”应用?

时间:2018-09-05 10:07:14

标签: node.js

我已经在本地桌面上运行了一些关于node.js的基本教程,并且一切正常。

我一直在尝试运行一个简单的“ Hello World!”。我的“实时”托管环境中的应用程序。这不是一个活跃的网站,只是一些我用来尝试的基本虚拟主机。我的托管服务提供商提供了一个node.js插件,每月额外收取少量费用,而我最近注册了这个插件。

我已经修改了文件(名为app.js)中的代码,以便它引用由我的托管服务提供商提供给我的主机和端口,而不是像以前那样使用localhost。代码如下:

const http = require('http');

const hostname = '195.62.28.216';
const port = xxxx;

const server = http.createServer((req, res) => {
  res.statusCode = 200;
  res.setHeader('Content-Type', 'text/plain');
  res.end('Hello World\n');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

用xxxx代替分配给我的端口。

如果我通过运行节点app.js使用SSH客户端(PuTTY)启动此操作,则会收到以下消息:

Server running at http://195.62.28.216:xxxx/

但是,如果我访问该URL,只会收到超时错误:

无法访问此网站 195.62.28.216花了很长时间才做出回应。

当我使用PuTTY连接到主机时,使用托管服务提供商提供给我的用户名和密码,它默认显示为名为/ home / my_username的文件夹。这是我的“ Hello World”应用文件的位置。

我已经联系了托管服务提供商的支持区域,但是我想在等待答复的同时也将其张贴在这里,以防有人指出我做错了正确的方向。

非常感谢,非常感谢您的协助。

1 个答案:

答案 0 :(得分:0)

非常感谢您的快速回复。我认为问题在于我正试图直接从浏览器访问195.62.28.216:xxxx URL,但是我认为它已经设置为只能从实际的Web托管环境访问。

换句话说,我将以下内容添加到我的云托管帐户的.htaccess文件中:

RewriteEngine On
RewriteRule ^ http://195.62.28.216:xxxx/ [P,L]

当我现在访问我的网站时,我得到“ Hello World!”。如预期的那样。现在,我只需要弄清楚如何做到这一点,以便仅当我访问网站上的特定文件夹而不是整个文件夹时才会发生...:-)