Javascript 如何在我的网站服务器而不是pc本地服务器上运行node.js

Javascript 如何在我的网站服务器而不是pc本地服务器上运行node.js,javascript,php,node.js,Javascript,Php,Node.js,过去两天我花了更多的时间阅读了50多篇文章和视频来理解node.js,安装后现在我可以通过http//:localhost:3000/在浏览器中看到结果,但我对下面描述的许多情况感到困惑 我所有的工作都是在我的共享托管服务器上完成的,我把我的网站放在那里:www.myweb.com 在每一篇关于node.js的文章中,他们都在教授如何通过本地pc服务器中的http/:localhost:3000/在浏览器中编写以下代码来获得结果 test.js var http = require('http'

过去两天我花了更多的时间阅读了50多篇文章和视频来理解node.js,安装后现在我可以通过
http//:localhost:3000/
在浏览器中看到结果,但我对下面描述的许多情况感到困惑

我所有的工作都是在我的共享托管服务器上完成的,我把我的网站放在那里:
www.myweb.com

在每一篇关于node.js的文章中,他们都在教授如何通过本地pc服务器中的
http/:localhost:3000/
在浏览器中编写以下代码来获得结果

test.js

var http = require('http');
http.createServer(function (request, response) {
  response.writeHead(200, {'Content-Type': 'text/plain'});
  response.end('Hello World\n');
}).listen(3000);
console.log('Server running at http://localhost:3000/');
但我的问题是:

  • 如果我在浏览器中使用http/:www.myweb.com/test.js`的话,上面的代码是什么

  • 对于本地pc,我们在npm
    node test.js
    上编写,但对于托管服务器,当任何客户打开页面时,如http://www.myweb.com/test.js如何工作

  • 在php的情况下,我们使用include(“head.php”)从该页面获取一些内容,但在本例中,如何调用node.js


  • 您需要在服务器上安装NodeJS。如果这是共享主机,您无法安装其他软件,那么您将无法使用NodeJS。在这种情况下,请联系您的web托管公司的支持人员,并询问有关NodeJS支持的信息

    另一方面,如果您在系统上拥有root用户或超级用户权限,则可以安装NodeJS。例如,对于CentOS/RHEL系统,您可以使用以下命令使用yum进行安装

    sudo yum install epel-release
    sudo yum install npm
    
    对于Linux的其他一些发行版:


    要将节点应用程序从PC访问到服务器,还需要在服务器防火墙中打开节点应用程序使用的端口。

    好的,您需要做的是了解http web服务器的工作原理

    通常,在远程机器(服务器)上,您有一个正在运行的web服务器实例(例如:apache),它正在侦听端口80(http请求的标准端口)。它将处理在该端口上发出的每个请求,并管理路由以使用正确的php/html文件

    然后,它将运行php代码服务器端,以呈现html文件并将其提供给服务器。因此,客户端根本看不到php代码

    让我们谈谈Node.js。Node是一个在服务器端运行javascript代码的应用程序,可以使用一些模块运行http服务器。但是javascript代码永远不会显示给您的客户机,他只会收到您发送给他的http响应(通常是html页面)

    现在,使用node.js,您需要像apache服务器一样创建http服务器。首先,您需要知道的是,并不是很多网站主机都提供node.js甚至控制台访问。它们通常提供您放在配置文件夹中的php/html文件,基本上就是这样。您需要的是一台虚拟机或一台服务器,您可以在其中安装node.js并运行它,或者使用node.js托管服务(如heroku或nodejitsu)托管node.js http服务器

    因此,要创建node.js http服务器,您需要创建一个http服务器(正如您在代码中所做的那样),并使其侦听端口80。现在,发送到服务器的每个http请求都将由node.js实例处理。然后,你可以通过这个请求做任何你想做的事情


    我希望我没有去过脏乱的地方。

    http://www.myweb.com:3000
    如果共享托管服务器提供商无法支持node.js。请告诉我,在共享主机中,还有什么替代方法可以像其他方法一样工作?好吧,您有几种不同的可能性:使用php,这是任何服务器提供商都支持的|使用node.js服务器提供商|将请求从现有http服务器重新路由到node.js服务器,但要清楚,如果您想使用node.js,您需要在某处运行node.js实例。另一个选项是从apache服务器加载静态网页,并使用ajax或web sockets请求从运行在其他地方的node.js服务器动态加载资源。据您所知,任何免费的web服务器都支持node.js。我感到很难过,因为我在长期尝试之后无法继续使用node.js。非常感谢。我没有使用免费的node.js托管,但我认为red hat在openshift上提供了一些免费托管。您可以查看以下内容: