Javascript 如何在我的网站服务器而不是pc本地服务器上运行node.js
过去两天我花了更多的时间阅读了50多篇文章和视频来理解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'
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/');
但我的问题是:
node test.js
上编写,但对于托管服务器,当任何客户打开页面时,如http://www.myweb.com/test.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上提供了一些免费托管。您可以查看以下内容: