node.js和npm在Windows 7 64位终极版中没有网络访问权限

时间:2012-02-10 01:30:28

标签: node.js windows-7 npm

注意:对于有此问题的其他人,我尝试了所有建议和所有研究。最后我格式化硬盘并重新安装了Windows。尽管从一开始就是一个全新的安装,一些Windows安装似乎根本不适用于节点。据我所知,这是唯一的解决方案。

首先,我已经找到了类似的问题: Basic Node.js examples not working on Windows 7这似乎是同一个问题,但没有解决方案。我也在网上找到了没有解决方案的论坛帖子,但很多人发布了相同的问题。

Node.exenpm似乎都没有网络访问权限。 npm install发送获取请求,但永远不会得到响应。访问mongodb的节点脚本从不发送连接请求。我将这个代码从我的旧机器复制到我的新机器上。这是我放在新机器上的第一件事。旧机器运行Windows 7 64家庭高级和新的Windows 7 64终极。我已经尝试了所有兼容模式,以管理员身份运行,禁用Windows防火墙,还没有防病毒软件,我已卸载/重新安装,并且我尝试更改版本,即使从旧计算机到新计算机的版本是相同。我已经搜索了stackoverflow和互联网,并找到了其他问题,但没有解决方案。我有一个虚拟的盒子ubuntu vm可以成功运行节点但是我希望能够在没有vm的情况下运行它,如果可能的话我似乎无法找到问题的原因。甚至两台计算机之间的OEM软件几乎完全相同,因为旧版本是外星人m15x而新版本是m14x。任何帮助表示赞赏。

编辑:

我目前正在使用最新版本(0.6.10)。运行npm install并挂起后,我使用netstat并在node.exe下得到以下结果:

 [node.exe]
   TCP    10.20.21.225:49690     ec2-107-20-159-167.compute-1.amazonaws.com:https                       ESTABLISHED
  [node.exe]
   TCP    10.20.21.225:49691     nuq04s08-in-f31.1e100.net:https  TIME_WAIT
   TCP    10.20.21.225:49692     fa-in-f94.1e100.net:https  TIME_WAIT
   TCP    10.20.21.225:49693     nuq04s08-in-f19.1e100.net:http  TIME_WAIT
   TCP    10.20.21.225:49696     nuq04s08-in-f25.1e100.net:http  TIME_WAIT
   TCP    10.20.21.225:49702     nuq04s08-in-f6.1e100.net:http  TIME_WAIT
   TCP    10.20.21.225:49703     nuq04s08-in-f25.1e100.net:http  TIME_WAIT
   TCP    10.20.21.225:49704     nuq04s08-in-f25.1e100.net:http  TIME_WAIT
   TCP    10.20.21.225:49706     nuq04s08-in-f26.1e100.net:http  TIME_WAIT
   TCP    10.20.21.225:49707     nuq04s08-in-f26.1e100.net:http  TIME_WAIT
   TCP    10.20.21.225:49708     nuq04s08-in-f26.1e100.net:http  TIME_WAIT
   TCP    10.20.21.225:49709     nuq04s08-in-f26.1e100.net:http  TIME_WAIT

现在当我在node.js主页上运行示例服务器时,我无法在浏览器中获取hello世界,但是连接是在netstat中:

  [node.exe]
   TCP    127.0.0.1:1337         Robbie-PC:49805        ESTABLISHED
  [node.exe]
   TCP    127.0.0.1:7789         Robbie-PC:49158        ESTABLISHED

但是当我等一会儿它变成:

  [node.exe]
   TCP    127.0.0.1:1337         Robbie-PC:49805        CLOSE_WAIT
  [node.exe]
   TCP    127.0.0.1:7789         Robbie-PC:49158        ESTABLISHED

编辑2:

所以我尝试禁用所有其他连接..没有运气。然后我尝试在eclipse中使用调试器,甚至eclipse也无法在端口5858上找到vm的调试器广播。它实际上只是没有连接。因此,除非有人除了擦除硬盘并重新安装Windows之外还有其他任何想法,否则我认为这台计算机将作为DOA返回到alienware。让我们希望下一个没有这个问题。感谢所有在评论中提出建议的人以及试图为我调查解决方案的所有人。

3 个答案:

答案 0 :(得分:1)

如果您在公司网络后面,可能需要在节点上进行代理配置才能进行设置。它运行类似这样的

npm config set proxy http://proxy.company.com:8080
npm config set https-proxy http://proxy.company.com:8080

将代理公司名称替换​​为您的网络使用的名称。

答案 1 :(得分:0)

使用相同的操作系统我没有这个问题,但我已经有问题下载一些软件包(我想要节点mysql)。为了解决我必须从github下载源代码的问题,请在node_modules存储库中解压缩并将其重命名为“mysql”。

现在我可以制作var mysql = require('mysql');

答案 2 :(得分:0)

甚至可以试试cygwin。它从纯虚拟Linux退出,并从在Windows 7上运行。我个人在64位上安装了Node.js的Cygwin和Windows 7(尽管不是最终的)。

由于写保护和安全设置,我只需要将节点安装到“程序文件”之外的目录中。仍然必须以管理员身份运行命令控制台,以确保所有工作正常。 Cygwin没有这些问题。