我一直在检查其他相关答案,例如:
但我找不到解决问题的方法。
这正是我所做的:
通过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);
Here's the complete app.js file
我还尝试复制并粘贴节点http服务器和使用Express 3/4 或app.js详细in the socket.io docs的示例,但是调用npm start
时,他们都会抛出错误。
然后,在我的hoggn视图中,我试图以这种方式加载socket.io:
<script type="text/javascript" src="/socket.io/socket.io.js"></script>
据我所知,node.js应该自动获取它,但在我的情况下它不是。为什么? 快递版:4.2.0
这是错误页面:
未找到
404个
错误:未找到
在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)
答案 0 :(得分:2)
而不是npm install socket.io
,你必须做npm install socket.io --save
所以socket.io模块安装在你的web开发文件夹中(在你的index.html或索引的基本位置/运行此命令。 php是)。这会将socket.io安装到运行命令的区域,而不是全局安装,此外,它会自动更正/更新package.json文件,以便node.js知道它在那里。
然后将源路径从'/socket.io/socket.io.js'
更改为'http://' + location.hostname + ':3000/socket.io/socket.io.js'
。