【问题标题】:Error: Cannot find module 'connect'错误:找不到模块“连接”
【发布时间】:2013-02-27 10:06:22
【问题描述】:

这个简单的应用程序在我刚刚安装到文件目录后似乎找不到'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)

【问题讨论】:

    标签: node.js connect


    【解决方案1】:

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

    $ npm install connect serve-static
    

    【讨论】:

      【解决方案2】:

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

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

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

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

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

      【讨论】:

      • 它在我在 package.json 中添加显式依赖并在实际将连接包下载到本地时运行 npm update 后工作。感谢您的提示
      • 如果您使用的是基于 Connect 构建的 Express,那么您应该使用 Express 来启动服务器。如果您直接使用 Connect,您使用 Express 的目的是什么?第二台服务器?
      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

        导航命令窗口

        我运行了命令 npm 安装连接

        回应: [已编辑]>npm -g 安装连接 npm 错误! Windows_NT 6.1.7601 npm 错误! argv " [编辑]\node_modules\npm\bin\npm-cli.js" "-g" "安装" "连接" npm 错误!节点 v0.12.7 npm 错误! npm v2.11.3 npm 错误!代码 ETIMEDOUT npm 错误!错误号 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 配置编辑 我更改了属性行以消除每行开头的分号。

        我又跑了 npm -g 安装连接

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

        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。这数百个文件可以做一些简单的事情简直超出了我的想象。

        【讨论】:

          【解决方案5】:

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

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

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

          【讨论】:

            【解决方案6】:

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

              npm install connect
            

            【讨论】:

              【解决方案7】:

              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 项目。

              快乐的节点黑客:)

              【讨论】:

                【解决方案8】:

                因为你没有安装它。你安装了express,而不是connect

                【讨论】:

                • connect@2.7.2模块不是上面列出的express安装的还是我必须单独安装?
                • 是的。但是你不能require()它,除非你自己明确安装它。这是express 的依赖,不是你自己的。
                猜你喜欢
                • 2018-10-14
                • 2018-12-30
                • 1970-01-01
                • 2016-12-20
                • 1970-01-01
                • 1970-01-01
                • 2021-01-20
                • 1970-01-01
                相关资源
                最近更新 更多