我刚刚通过克隆 git repo + make && make install 安装了节点。然后我安装了 npm,并使用 npm 安装 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 但结论似乎是需要安装连接(我有)。我检查过我至少有以下文件:
/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');
但是最新的版本。是固定的,所以这不应该真的是必要的(见下面的答案)。