我正在尝试按照快递网站指南
中提到的说明在我的Windows终端中安装快递1首先,我在package.json文件中创建了一个目录节点。
我的package.json如下
{
"name": "hello-world",
"description": "hello world test app",
"version": "0.0.1",
"private": true,
"dependencies": {
"express": "3.x"
}
}
然后我尝试运行命令
npm install
但收到以下错误
E:\myFindings\nodejs_programs\node>npm install
npm http GET https://registry.npmjs.org/express
npm http GET https://registry.npmjs.org/express/-/express-3.4.8.tgz
npm ERR! Error: tunneling socket could not be established, cause=connect ETIMEDOUT
npm ERR! at ClientRequest.onError (C:\Program Files\nodejs\node_modules\npm\node_modules\request\tunnel.js:161:17)
npm ERR! at ClientRequest.g (events.js:185:14)
npm ERR! at ClientRequest.EventEmitter.emit (events.js:88:17)
npm ERR! at Socket.socketErrorListener (http.js:1320:9)
npm ERR! at Socket.EventEmitter.emit (events.js:88:17)
npm ERR! at Socket._destroy.self.errorEmitted (net.js:329:14)
npm ERR! at process.startup.processNextTick.process._tickCallback (node.js:244:9)
npm ERR! { [Error: tunneling socket could not be established, cause=connect ETIMEDOUT] code: 'ECONNRESET' }
npm ERR! You may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <npm-@googlegroups.com>
npm ERR! System Windows_NT 6.1.7601
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
npm ERR! cwd E:\myFindings\nodejs_programs\node
npm ERR! node -v v0.8.0
npm ERR! npm -v 1.1.32
npm ERR! code ECONNRESET
npm ERR! message tunneling socket could not be established, cause=connect ETIMEDOUT
npm ERR! Error: socket hang up
npm ERR! at createHangUpError (http.js:1253:15)
npm ERR! at Socket.socketCloseListener (http.js:1304:23)
npm ERR! at Socket.EventEmitter.emit (events.js:88:17)
npm ERR! at Socket._destroy.destroyed (net.js:358:10)
npm ERR! at process.startup.processNextTick.process._tickCallback (node.js:244:9)
npm ERR! { [Error: socket hang up] code: 'ECONNRESET' }
npm ERR! You may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <npm-@googlegroups.com>
npm ERR! System Windows_NT 6.1.7601
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
npm ERR! cwd E:\myFindings\nodejs_programs\node
npm ERR! node -v v0.8.0
npm ERR! npm -v 1.1.32
npm ERR! code ECONNRESET
npm ERR! message socket hang up
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! E:\myFindings\nodejs_programs\node\npm-debug.log
npm ERR! not ok code 0
我无法理解是什么问题,请帮我整理一下
我甚至尝试在不使用.json文件的情况下安装express,但得到相同的错误
我的npm配置列表的内容
E:\myFindings\nodejs_programs\node>npm config list
; cli configs
; userconfig C:\Users\sudipkumars\.npmrc
https-proxy = "http://sudip:sudip7@proxy:8086/"
proxy = "http://sudip:sudip7@proxy:8086/%20strict-ssl%20=%20false"
registry = "https://registry.npmjs.org/"
; builtin config C:\Program Files\nodejs\node_modules\npm\npmrc
prefix = "C:\\Users\\sudipkumars\\AppData\\Roaming\\npm"
; node install prefix = C:\Program Files
; node bin location = C:\Program Files\nodejs\\node.exe
; cwd = E:\myFindings\nodejs_programs\node
; HOME = C:\Users\sudipkumars
; 'npm config ls -l' to show all defaults.
我尝试了你的建议
npm config set registry http://registry.npmjs.org/
,输出
E:\myFindings\nodejs_programs\node>npm install express
npm http GET http://registry.npmjs.org/express
npm http 304 http://registry.npmjs.org/express
npm http GET http://registry.npmjs.org/express/-/express-3.4.8.tgz
npm ERR! Error: getaddrinfo ENOENT
npm ERR! at errnoException (dns.js:31:11)
npm ERR! at Object.onanswer [as oncomplete] (dns.js:123:16)
npm ERR! { [Error: getaddrinfo ENOENT] code: 'ENOTFOUND', errno: 'ENOTFOUND', syscall: 'getaddrinfo' }
npm ERR! You may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <npm-@googlegroups.com>
答案 0 :(得分:3)
在理解问题方面。问题在于您的计算机无法与https://registry.npmjs.org/express/-/express-3.4.8.tgz
建立连接它正在尝试使用HTTP GET方法从NPM注册表中的服务器检索文件,但它似乎已超时:
npm http GET https://registry.npmjs.org/express/-/express-3.4.8.tgz
npm ERR! Error: tunneling socket could not be established, cause=connect ETIMEDOUT
这可能有几个原因,但我会提到两个主要原因:
查看你的npm配置:
npm config set strict-ssl false
npm config set registry http://registry.npmjs.org/
答案 1 :(得分:1)
我通过发出以下命令解决了这个问题
string json = ...
var model = JsonConvert.DeserializeObject<MyModel>(json);
答案 2 :(得分:0)
运行以下命令
npm install express
答案 3 :(得分:0)
解决方法:npm config set registry=http://registry.npmjs.org/
效果很好。