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

最近两天我花了更多的时间,阅读了超过50篇文章和video,以了解node.js,现在我可以通过http//:localhost:3000/在浏览器中看到结果。但是我在下面描述的很多情况下。

我在我的分享托pipe服务器上完成了我的所有工作,我在那里保存我的网站: www.myweb.com

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

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/'); 

但是我的问题:

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

  2. 在本地电脑的情况下,我们写在npm node test.js ,但在托pipe服务器的情况下,当任何clint打开页面如http//:www.myweb.com/test.js //:w​​ww.myweb.com/test.js如何工作?

  3. 在PHP的情况下,我们使用包括(“head.php”)从该页面获取的东西但在这种情况下如何打电话node.js。

那么,你需要做的是了解HTTP Web服务器如何工作。

通常,在你的远程机器(你的服务器)上,你有一个正在监听80端口(http请求的标准端口)的Web服务器(例如:apache)的一个实例。 它将处理在该端口上所做的每个请求,并pipe理路由以使用正确的php / html文件。

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

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

所以,现在,使用node.js,您需要通过创buildhttp服务器来执行与Apache服务器相同的操作。 首先,你必须知道的是,没有那么多的网站主机提供node.js,甚至控制台访问。 他们通常服务于你放在configuration文件夹中的php / html文件,基本上就是这样。 你需要的是一个虚拟机,或者你可以在其上安装node.js并运行它的服务器,或者使用node.js托pipe服务,如heroku或nodejitsu来托pipe你的node.js http服务器。

因此,要创buildnode.js http服务器,需要创build一个http服务器(就像您在代码中所做的那样),并使其监听端口80.现在,发送到您服务器的每个http请求都将由您的节点处理.js实例。 然后,你可以做任何你想要的东西。

我希望我没有被弄脏。

您需要在服务器上安装NodeJS。 如果这是共享主机,你不能安装额外的软件,那么你将无法使用NodeJS。 在这种情况下,请联系您的networking托pipe公司的支持,并询问有关NodeJS的支持。

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

 sudo yum install epel-release sudo yum install npm 

对于Linux的其他发行版: http : //ask.xmodulo.com/install-node-js-linux.html

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