12

'connect'看来这个简单的应用程序在我刚刚将它安装在文件目录中后找不到该模块。

var connect = require ('connect');

connect.createServer(function(res, req, next) {
    res.simpleBody("Connect you son of a beeeeetch");

}).listen(8000);



express@3.1.0 node_modules/express
├── methods@0.0.1
├── fresh@0.1.0
├── range-parser@0.0.4
├── cookie-signature@0.0.1
├── buffer-crc32@0.1.1
├── cookie@0.0.5
├── debug@0.7.2
├── commander@0.6.1
├── mkdirp@0.3.3
├── send@0.1.0 (mime@1.2.6)
└── connect@2.7.2 (pause@0.0.1, bytes@0.1.0, formidable@1.0.11, qs@0.5.1)
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)
4

8 回答 8

20

Express在内部使用Connect作为其 node_modules 依赖项之一。

如果您希望在您的应用程序中使用 Connect,您需要将其添加到您的package.json并运行npm update.

按照设计,每个节点模块都有自己的私有内部依赖项。

如果你想使用任何,你的应用程序也需要安装它们。

这意味着您的应用可以使用不同版本的模块,并且每个模块可以在内部再次使用不同的版本而不会发生冲突。

于 2013-03-12T02:09:19.833 回答
8

Connect是 Express 使用的可扩展 HTTP 服务器框架。特别是 Express 使用它为会话和 cookie 处理提供支持。源代码可在 github 上https://github.com/senchalabs/connect获得。

通常,当节点应用程序“找不到”某些内容时,首先要尝试的是转到https://npmjs.org/package/npm-search并搜索找不到的内容。如果不使用 npm,在节点生态系统中将很难相处。

在这种情况下,npmsearch 会找到 connect,如果您访问https://npmjs.org/package/connect,您会找到 connect 模块的安装说明。

在这种情况下 :

npm install connect

npm -g install connect 

为每个用户安装连接模块。

在大多数 unix 发行版上,您可能需要 root 或使用 sudo 来执行此操作。

或者,您可以将连接依赖项添加到项目的 package.json 文件中 - 我的看起来像这样:

"express": "3.x" ,
"connect": "2.x"

我还必须使用 npm 安装模块 buffer-crc32、methods、debug、fresh、range-parser、cookie-signature 和 cookie 以获得一个工作的 express 项目。

快乐的节点黑客 :)

于 2013-08-06T15:16:19.920 回答
6

连接模块未安装或部分安装,因此请先安装它,然后再尝试重新启动服务器

  npm install connect
于 2014-01-28T20:06:43.710 回答
2

您可以使用以下命令,如果您忘记安装 connect serve-static 模块或安装不正确,可能会发生这种情况。

$ npm install connect serve-static
于 2019-01-29T10:00:44.430 回答
1

因为你没有安装。你已经express安装了,没有connect

于 2013-03-12T02:04:18.433 回答
0

我有同样的问题。节点安装到目录C:\Program Files (x86)\nodejs中。最初我试图从这个目录安装和运行 javascript 文件,这导致了许多权限问题。

如果您已将服务器放在该目录中,请尝试将其移动到另一个目录(可能在 中Documents),在您的 Node 命令提示符中导航到那里,然后再次尝试运行。

这对我来说是开箱即用的。

于 2015-05-08T15:11:31.640 回答
0

(Win7) 我以管理员身份打开了一个命令窗口 我在 C:\Program Files (x86)\NodeJS 下创建了一个目录 我通过 cd C:\Program Files (x86)\NodeJS 导航了命令窗口

我运行了命令 npm install connect

响应:[已编辑]>npm -g install connect npm ERR!Windows_NT 6.1.7601 npm 错误!argv " [redacted]\node_modules\npm\bin\npm-cli.js" "-g" "install" "connect" npm ERR! 节点 v0.12.7 npm 错误!npm v2.11.3 npm 错误!代码 ETIMEDOUT npm 错误!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

我运行 npm config edit 我更改了属性行以消除每行开头的分号。

再次,我运行 npm -g install connect

同样的结果。日志文件有这个:

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 npm@2.11.3
3 info using node@v0.12.7
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 ]

我想我只会使用 IIS Express。这数百个文件要做一些简单的事情,这超出了我的范围。

于 2015-07-23T16:56:54.713 回答
0

我对 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)

安装包

$ npm install express-http-proxy -g
express-http-proxy@0.6.0 /opt/jet/nodejs/node-js/lib/node_modules/express-http-proxy
âââ type-is@1.6.6 (media-typer@0.3.0, mime-types@2.1.4)
âââ raw-body@1.3.4 (bytes@1.0.0, iconv-lite@0.4.8)

或者如果“-g”还不够

$ npm install express-http-proxy --save-dev  

吞咽工作

$ 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
...
于 2015-08-03T14:56:20.033 回答