如何使用Express和Socket.IO设置Node.JS?

我试图build立一个Node.JS服务器来监听我的CentOS服务器的3800端口:

var app = require('express')(); var http = require('http').Server(app); app.get('/', function(req, res){ res.send('<h1>Hello World!</h1>'); }); http.listen(3800, function(){ console.log('Listening on port: 3800'); }); 

我有一个域,我在我的Apache服务器上configuration了虚拟主机的域来侦听端口80.但是,当我尝试访问

 http://example.com:3800 or http://server_ip:3800 

它不工作。 浏览器不断尝试连接,然后我得到了错误。

我不知道我做错了什么,因为我跟着教程。 我在这里search了其他问题,我试图将代码复制到我的index.js中,而不是任何东西。 这个简单的“Hello World”没有显示,我无法访问服务器。

我做了“node index.js”,并在我的服务器上完美地显示“侦听端口:3800”,我有root用户访问权限,我用root用户做了所有事情。 我做了“npm install express”和“npm install socket.io”命令,我试图制作package.json文件,然后“npm install”。 我search了另一个网站,我尝试了“npm install –save:express”的指示,不起作用。

我认为这是我的Linuxconfiguration的问题。

我的问题是:当我访问http://example.com:3800时如何才能使这个简单的脚本工作?

我的问题的正确答案是使用此命令在iptables中打开端口:

iptables -I INPUT -p tcp –dport 3800 -j ACCEPT

然后用命令保存它:

/ sbin / service iptables保存

基于CentOS6的系统。

你的实际例子将工作到localhost:3800

我不知道如何在apache服务器上运行nodejs:/

如果有帮助的话,我通常会比你的代码略有不同:

 var app = require('express'); var http = require('http'); app.get('/', function(req, res){ res.send('<h1>Hello World!</h1>'); }); app.listen(3800, function(){ console.log('Listening on port: 3800'); }); 

编辑 – – – – – – – – – – – – – – – –

这里的主要问题是,你正在尝试在Apache中使用nodejs,如上所述,这不是不可能的,但是确定configuration你的服务器是一件痛苦的事情,而不是正常的LAMP堆栈configuration,你可能会运行在一些types的错误或切割function,尝试在节点后端托pipe你的应用程序,像openshift或heroku