Nodejs在require(' socket.io')上抛出错误

时间:2015-02-11 21:14:49

标签: node.js socket.io

我在windows x64上有nodejs

on require(' socket.io')。listen(8080);或者只是要求(' socket.io');我收到这个错误:

C:\node>node applications/app.js
C:\node\node_modules\engine.io-client\lib\transports\polling.js:23
  var xhr = new XMLHttpRequest({ xdomain: false });
            ^
TypeError: object is not a function
    at C:\node\node_modules\engine.io-client\lib\transports\polling.js:23:13
    at Object.<anonymous> (C:\node\node_modules\engine.io-client\lib\transports\
polling.js:25:3)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (C:\node\node_modules\engine.io-client\lib\transports\
polling-xhr.js:6:15)
    at Module._compile (module.js:460:26)

1 个答案:

答案 0 :(得分:1)

您似乎在某种程度上包含了错误的socket.io库。 XMLHttpRequest是一个浏览器对象,仅在浏览器中可用。如果您在node.js中使用socket.io,那么您可能希望该库的服务器端版本不会尝试使用XMLHttpRequest

而且,当您查看路径名称时,您似乎以某种方式绘制了engine.io-client,这不是您想要的。

这是您想要的服务器端模块:https://www.npmjs.com/package/socket.io


如果您拥有正确的模块,但是您在浏览器的客户端模块上执行了require(),那么这也可能导致您看到的问题,因为这将是一个错误应该删除。