在Windows 7 64位旗舰版中,node.js和npm无法访问网络

node.js and npm has no network access in windows 7 64 bit ultimate

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

因此,首先,我已经找到了类似的问题:
基本的Node.js示例在Windows 7上不起作用,这似乎是相同的问题,但是没有解决方案。我还在网上找到论坛帖子,没有任何解决方案,但许多人发布了相同的问题。

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

编辑:

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
 [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主页上运行示例服务器时,我无法在浏览器中获得问候世界,但是连接位于netstat中:

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

但是当我稍等片刻时,它变为:

1
2
3
4
  [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。希望下一个没有这个问题。感谢所有在评论中提出建议的人,以及所有尝试为我研究解决方案的人。


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

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

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


甚至可以尝试cygwin。从纯虚拟Linux和使其在Windows 7上运行开始,它都迈出了一步。就个人而言,我在Cygwin和Windows 7上都安装了64位的node.js(虽然不是最终版本)。

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


在相同的操作系统上,我没有这个问题,但是在下载某些软件包时我已经遇到了问题(我想要节点mysql)。为了解决我必须从github下载源代码的问题,请将其提取到node_modules存储库中,并将其重命名为" mysql"。

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