我刚刚通过克隆git仓库并执行make && make install来安装了Node。然后我安装了npm,并使用npm安装了express(似乎它会自动获取Connect,因为它是一个依赖项)。然而,当我尝试启动一个简单的express示例时,我收到了错误消息:
Error: Cannot find module 'connect/utils'
at Function._resolveFilename (module.js:219:11)
at Function._load (module.js:171:25)
at require (module.js:246:19)
at Object.<anonymous> (/home/yngve/local/node/lib/node/.npm/express/1.0.3/package/lib/express/response.js:16:13)
at Module._compile (module.js:302:26)
at Object..js (module.js:308:10)
at Module.load (module.js:234:31)
at Function._load (module.js:201:10)
at require (module.js:246:19)
at Object.<anonymous> (/home/yngve/local/node/lib/node/.npm/express/1.0.3/package/lib/express/index.js:52:1)
看起来这里有人遇到了同样的问题:http://groups.google.com/group/express-js/browse_thread/thread/287086bd30f79cf1/adbb5c669872e45a,但结论似乎是需要安装connect(我已经安装了)。 我已经检查过至少有以下文件:
/home/yngve/local/node/lib/node/.npm/connect/0.5.8/package/lib/connect/utils.js /home/yngve/local/node/lib/node/.npm/express/1.0.3/node_modules/connect/connect/utils.js
有人有头绪吗?
已解决
已添加
require.paths.unshift('<path_to_node>/lib/node/connect');
但是最新版本已经修复了,所以这并不是必要的(请参阅下面的答案)。