首页 > 解决方案 > 如何使用 Node.js 在共享主机上运行简单的“Hello World”应用程序?

问题描述

我已经在我的桌面上本地运行了一些使用 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 代替分配给我的端口。

如果我通过运行 node app.js 使用我的 SSH 客户端 (PuTTY) 启动它,我会收到以下消息:

Server running at http://195.62.28.216:xxxx/

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

无法访问此站点 195.62.28.216 响应时间过长。

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

我已经联系了我的托管服务提供商的支持区域,但我想我也会在等待回复的同时在这里发帖,以防有人能指出我可能做错了什么的正确方向。

非常感谢,非常感谢任何帮助。

标签: node.js

解决方案


感谢以上所有人的快速回复。我认为问题在于我试图直接从我的浏览器访问 195.62.28.216:xxxx URL,但我认为它已设置为只能从我的实际 Web 托管环境中访问。

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

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

当我现在访问我的网站时,我得到“Hello World!” 正如预期的那样。现在我只需要弄清楚如何制作它,这样只有当我访问我网站上的特定文件夹而不是整个事情时才会发生这种情况...... :-)


推荐阅读