node.js 错误:找不到模块“连接”
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/15351995/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Error: Cannot find module 'connect'
提问by Architek1
It appears that this simple app can't find the 'connect'module after I just installed it in the file directory.
这个简单的应用程序似乎'connect'在我刚刚将其安装到文件目录中后找不到该模块。
var connect = require ('connect');
connect.createServer(function(res, req, next) {
res.simpleBody("Connect you son of a beeeeetch");
}).listen(8000);
[email protected] node_modules/express
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected])
Dzs-Mac-Attax-2:PlsWrk Dz$ node test.js
module.js:340
throw err;
^
Error: Cannot find module 'connect'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:362:17)
at require (module.js:378:17)
at Object.<anonymous> (/Users/Dz/Documents/NodeTests/PlsWrk/test.js:1:77)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.runMain (module.js:492:10)
回答by Mike Causer
Expressinternally uses Connectas one of its node_modules dependencies.
Express 在内部使用Connect作为其 node_modules 依赖项之一。
If you wish to use Connect in your app, you'll need to add it to your package.jsonand run npm update.
如果您希望在您的应用程序中使用 Connect,您需要将它添加到您的package.json并运行npm update.
By design, each node module has its own private internal dependencies.
按照设计,每个节点模块都有自己的私有内部依赖项。
If you want to use any, your app will need to install them too.
如果你想使用任何一个,你的应用程序也需要安装它们。
It means your app can use a different version of the modules, and each module can internally use different versions again without conflicts.
这意味着您的应用程序可以使用不同版本的模块,并且每个模块可以在内部再次使用不同版本而不会发生冲突。
回答by Darren White
Connectis an extensible HTTP server framework that Express uses. In particular Express uses it provide support for sessions and cookie handling. The source code is available on github at https://github.com/senchalabs/connect.
Connect是 Express 使用的可扩展 HTTP 服务器框架。特别是 Express 使用它为会话和 cookie 处理提供支持。源代码可在 github 上获取,网址为https://github.com/senchalabs/connect。
Generally when a node application 'can't find' something the first thing to try is to go to https://npmjs.org/package/npm-searchand search for what can't be found. It would be hard to get along in the node eco-system without using npm.
通常,当节点应用程序“找不到”某些东西时,首先要尝试的是转到https://npmjs.org/package/npm-search并搜索找不到的东西。不使用 npm 很难在节点生态系统中相处。
In this case npmsearch will find connect and if you go to https://npmjs.org/package/connectyou'll find the installation instructions for the connect module.
在这种情况下,npmsearch 将找到 connect,如果您转到https://npmjs.org/package/connect,您将找到 connect 模块的安装说明。
In this case :
在这种情况下 :
npm install connect
npm -g install connect
installs the connect module for every user.
为每个用户安装连接模块。
You may need to be root or use sudo to do this on most unix distributions.
在大多数 unix 发行版上,您可能需要是 root 用户或使用 sudo 来执行此操作。
Alternatively you can add the connect dependency to your project's package.json file - mine looks like this:
或者,您可以将连接依赖项添加到项目的 package.json 文件中 - 我的看起来像这样:
"express": "3.x" ,
"connect": "2.x"
I also had to use npm to install the modules buffer-crc32, methods, debug, fresh, range-parser, cookie-signature and cookie to get a working express project.
我还必须使用 npm 来安装模块 buffer-crc32、methods、debug、fresh、range-parser、cookie-signature 和 cookie 以获得一个有效的 express 项目。
Happy node hacking :)
快乐的节点黑客:)
回答by Siavosh
The connect module either is not installed or installed partially so install it firstly and later on try to start the server again
连接模块未安装或部分安装,因此先安装它,然后再尝试重新启动服务器
npm install connect
回答by Jonathan Ong
because you didn't install it. you have expressinstalled, not connect.
因为你没有安装。你已经express安装了,没有connect。
回答by XORG_99
you can use the following command, this might happen if you forget to install the connect serve-static module or installed it incorrectly.
您可以使用以下命令,如果您忘记安装 connect serve-static 模块或安装不正确,可能会发生这种情况。
$ npm install connect serve-static
回答by StackG
I had the same problem. Node installed into the directory C:\Program Files (x86)\nodejs. Initially I was trying to install and run javascript files from this directory, which caused numerous permissions problems.
我有同样的问题。节点安装到目录中C:\Program Files (x86)\nodejs。最初我试图从这个目录安装和运行 javascript 文件,这导致了许多权限问题。
If you've put your server in that directory, try moving it to another directory (perhaps in Documents), navigate there in your Node command prompt, and try running again.
如果您已将服务器放在该目录中,请尝试将其移动到另一个目录(可能在 中Documents),在您的 Node 命令提示符中导航到该目录,然后再次尝试运行。
That worked out-of-the-box for me.
这对我来说是开箱即用的。
回答by sef
(Win7) I have a Command window open as an administrator I made a directory under C:\Program Files (x86)\NodeJS I navigated the Command window via cd C:\Program Files (x86)\NodeJS
(Win7) 我以管理员身份打开了一个命令窗口 我在 C:\Program Files (x86)\NodeJS 下创建了一个目录 我通过 cd C:\Program Files (x86)\NodeJS 导航了命令窗口
I ran commands npm install connect
我运行命令 npm install connect
response: [redacted]>npm -g install connect npm ERR! Windows_NT 6.1.7601 npm ERR! argv " [redacted]\node_modules\npm\bin\npm-cli.js" "-g" "install" "connect" npm ERR! node v0.12.7 npm ERR! npm v2.11.3 npm ERR! code ETIMEDOUT npm ERR! errno ETIMEDOUT npm ERR! syscall connect
响应:[已编辑]>npm -g install connect npm ERR!Windows_NT 6.1.7601 npm 错误!argv " [已编辑]\node_modules\npm\bin\npm-cli.js" "-g" "install" "connect" npm ERR!节点 v0.12.7 npm ERR!npm v2.11.3 npm ERR!代码 ETIMEDOUT npm ERR!errno ETIMEDOUT npm 错误!系统调用连接
npm ERR! network connect ETIMEDOUT
npm ERR! network This is most likely not a problem with npm itself
npm ERR! network and is related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network 'proxy' config is set properly. See: 'npm help config'
npm ERR! Please include the following file with any support request:
npm ERR! [redacted]\npm-debug.log
I ran npm config edit I changed the attribute lines to eliminate the semi-colon at the start of each of those lines.
我运行 npm config edit 我更改了属性行以消除每行开头的分号。
Again, I ran npm -g install connect
再次,我运行 npm -g install connect
same result. The log file has this:
同样的结果。日志文件是这样的:
0 info it worked if it ends with ok
1 verbose cli [ ' [redacted]\\node.exe',
1 verbose cli ' [redacted]\node_modules\npm\bin\npm-cli.js',
1 verbose cli '-g',
1 verbose cli 'install',
1 verbose cli 'connect' ]
2 info using [email protected]
3 info using [email protected]
4 verbose install initial load of [redacted]\package.json
5 verbose readDependencies loading dependencies from [redacted]\package.json
6 silly cache add args [ 'connect', null ]
7 verbose cache add spec connect
8 silly cache add parsed spec { raw: 'connect',
8 silly cache add scope: null,
8 silly cache add name: 'connect',
8 silly cache add rawSpec: '',
8 silly cache add spec: '*',
8 silly cache add type: 'range' }
9 silly addNamed connect@*
10 verbose addNamed "*" is a valid semver range for connect
11 silly addNameRange { name: 'connect', range: '*', hasData: false }
12 silly mapToRegistry name connect
13 silly mapToRegistry using default registry
14 silly mapToRegistry registry ht tps://registry.npmjs.org/
15 silly mapToRegistry uri ht tps://registry.npmjs.org/connect
16 verbose addNameRange registry:ht tps://registry.npmjs.org/connect not in flight; fetching
17 verbose request uri https://registry.npmjs.org/connect
18 verbose request no auth needed
19 info attempt registry request try #1 at 12:36:52 PM
20 verbose request id 3524fc7ca91c73dc
21 http request GET https://registry.npmjs.org/connect
22 info retry will retry, error on last attempt: Error: connect ETIMEDOUT
23 info attempt registry request try #2 at 12:37:26 PM
24 http request GET https://registry.npmjs.org/connect
25 info retry will retry, error on last attempt: Error: connect ETIMEDOUT
26 info attempt registry request try #3 at 12:38:50 PM
27 http request GET https://registry.npmjs.org/connect
28 verbose stack Error: connect ETIMEDOUT
28 verbose stack at exports._errnoException (util.js:746:11)
28 verbose stack at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1010:19)
29 verbose cwd [redacted]
30 error Windows_NT 6.1.7601
31 error argv "[redacted]\node_modules\npm\bin\npm-cli.js" "-g" "install" "connect"
32 error node v0.12.7
33 error npm v2.11.3
34 error code ETIMEDOUT
35 error errno ETIMEDOUT
36 error syscall connect
37 error network connect ETIMEDOUT
37 error network This is most likely not a problem with npm itself
37 error network and is related to network connectivity.
37 error network In most cases you are behind a proxy or have bad network settings.
37 error network
37 error network If you are behind a proxy, please make sure that the
37 error network 'proxy' config is set properly. See: 'npm help config'
38 verbose exit [ 1, true ]
I guess I will just use IIS Express. This hundreds of files to do somethingsimple is just beyond me.
我想我只会使用 IIS Express。这数百个文件做一些简单的事情超出了我的范围。
回答by Andreas Panagiotidis
I had the same problem for express-http-proxy and the solution was to install the package with npm. At first I installed globally (-g) and it works. On another installation I had to use "--save-dev".
我对 express-http-proxy 有同样的问题,解决方案是使用 npm 安装包。起初我全局安装(-g)并且它有效。在另一个安装中,我不得不使用“--save-dev”。
$ gulp
module.js:338
throw err;
^
Error: Cannot find module 'express-http-proxy'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/var/opt/jet/workspace/node-js-project/lib/authorization-to-context-header.js:1:75)
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)
installing the package
安装包
$ npm install express-http-proxy -g
[email protected] /opt/jet/nodejs/node-js/lib/node_modules/express-http-proxy
aaa [email protected] ([email protected], [email protected])
aaa [email protected] ([email protected], [email protected])
or if the "-g" is not enough
或者如果“-g”还不够
$ npm install express-http-proxy --save-dev
gulp works
吞咽作品
$ gulp
[16:49:17] Using gulpfile /var/opt/workspace/node-js-project/gulpfile.js
[16:49:17] Starting 'dev'...
[16:49:17] Starting 'clean'...
[16:49:17] Finished 'dev' after 9.18 ms
[16:49:17] Starting 'default'...
[16:49:17] Finished 'default' after 10 ??s
[16:49:17] Finished 'clean' after 11 ms
[16:49:17] Starting 'build'...
[16:49:17] Starting 'clean'...
[16:49:17] Finished 'clean' after 2.13 ms
[16:49:17] Starting 'styles'...
[16:49:17] Finished 'styles' after 813 ms
...

