未findSocket.io.js(node.js + express + socket.io)

我一直在检查其他相关的答案,如:

  • 找不到node.js /socket.io/socket.io.js
  • Socket.io不被Node.js服务器提供服务
  • 在客户端找不到socket.io.js
  • configuration“最简单的”node.js + socket.IO + Express服务器

但我没有find解决我的问题。

这正是我所做的:

通过Windows可执行文件安装节点,然后:

express node6 --hogan --ejs cd node6 npm install npm install socket.io npm start 

我的app.js是默认的,但我添加了以下几行来与socket.io链接:

 var http = require('http'); var server = http.createServer(app); var io = require('socket.io')(server); io.listen(http); http.listen(3000); 

这里是完整的app.js文件 。

我也尝试复制并粘贴Node http服务器使用Express 3/4的示例或者socket.io文档中详细介绍的app.js,但是它们在调用npm start时都会引发错误。

然后,在我的hoggn视图中,我试图通过这种方式加载socket.io:

 <script type="text/javascript" src="/socket.io/socket.io.js"></script> 

据我所知,node.js应该自动获取它,但它不在我的情况。 为什么? Express版本:4.2.0

这是错误页面:

未find
404
错误:未find
在Layer.app.use.res.render.message [作为句柄](C:\ inetpub \ wwwroot \ node6 \ app.js:29:15)
在trim_prefix(C:\ inetpub \ wwwroot \ node6 \ node_modules \ express \ lib \ router \ index.js:240:15)
在C:\ inetpub \ wwwroot \ node6 \ node_modules \ express \ lib \ router \ index.js:208:9
在Function.proto.process_params(C:\ inetpub \ wwwroot \ node6 \ node_modules \ express \ lib \ router \ index.js:269:12)
(C:\ inetpub \ wwwroot \ node6 \ node_modules \ express \ lib \ router \ index.js:199:19)
(C:\ inetpub \ wwwroot \ node6 \ node_modules \ express \ lib \ router \ index.js:176:38)
在C:\ inetpub \ wwwroot \ node6 \ node_modules \ express \ lib \ router \ index.js:137:5
在C:\ inetpub \ wwwroot \ node6 \ node_modules \ express \ lib \ router \ index.js:250:10
(C:\ inetpub \ wwwroot \ node6 \ node_modules \ express \ lib \ router \ index.js:160:14)
(C:\ inetpub \ wwwroot \ node6 \ node_modules \ express \ lib \ router \ index.js:176:38)

而不是做npm install socket.io你必须做npm install socket.io --save所以socket.io模块被安装在你的web开发文件夹(运行这个命令在基地位置/你的index.html或索引。 PHP是)。 这会将socket.io安装到运行该命令的区域,而不是全局安装,另外还会自动更正/更新您的package.json文件,以便node.js知道它在那里。

然后将源path从'/socket.io/socket.io.js'更改为'http://' + location.hostname + ':3000/socket.io/socket.io.js'