在我刚刚将'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)
8条答案
按热度按时间wi3ka0sx1#
Express在内部使用Connect作为其node_modules依赖项之一。
如果您希望在应用中使用Connect,则需要将其添加到
package.json
并运行npm update
。根据设计,每个节点模块都有自己的私有内部依赖项。
如果你想使用任何,你的应用程序也需要安装它们。
这意味着您的应用可以使用不同版本的模块,并且每个模块可以在内部再次使用不同版本而不会发生冲突。
agxfikkp2#
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模块的安装说明。
在这种情况下:
为每个用户安装连接模块。
在大多数unix发行版上,您可能需要root用户或使用sudo来执行此操作。
或者,你可以将连接依赖项添加到你的项目的package.json文件中--我的看起来像这样:
我还必须使用npm安装buffer-crc 32,methods,debug,fresh,range-parser,cookie-signature和cookie模块,以获得一个工作的express项目。
Happy node hacking:)
h7appiyu3#
连接模块未安装或部分安装,因此请先安装它,然后再次尝试启动服务器
kpbpu0084#
你可以使用下面的命令,如果你忘记安装connect serve-static模块或安装不正确,可能会发生这种情况。
yshpjwxd5#
因为不是你安装的您安装了
express
,而不是connect
。mlmc2os56#
我也有同样的问题。节点安装到目录
C:\Program Files (x86)\nodejs
中。最初我试图从这个目录安装和运行javascript文件,这导致了许多权限问题。如果您已经将服务器放在该目录中,请尝试将其移动到另一个目录(可能在
Documents
中),在Node命令提示符下导航到该目录,然后再次尝试运行。这对我来说是开箱即用的。
vzgqcmou7#
(Win7)我以管理员身份打开命令窗口我在C:\Program Files(x86)\NodeJS下创建了一个目录我通过cd C:\Program Files(x86)\NodeJS导航命令窗口
我运行命令npm install connect
response:[redacted]>npm -g install connect npm错误!Windows_NT 6.1.7601 npm错误!argv“[编辑]\node_modules\npm\bin\npm-cli.js”“-g”“install”“connect”npm错误!node v0.12.7 npm错误!npm v2.11.3 npm错误!code ETIMEDOUT npm ERR!errno ETIMEDOUT npm ERR!系统调用连接
我运行了npm config edit,更改了属性行,以消除每行开头的分号。
再次运行npm -g install connect
同样的结果。日志文件包含以下内容:
我想我会使用IIS Express。这 * 数百个文件做一些 * 简单的只是超出了我。
u5i3ibmn8#
我在express-http-proxy上遇到了同样的问题,解决方案是用npm安装这个包。首先,我安装了全局(-g),它工作正常。在另一个安装中,我不得不使用“--save-dev”。
安装包
或者“-g”不够
吞下工作