在OS X 10.8上遇到node-mongoskin问题

时间:2013-08-13 10:08:53

标签: macos node.js npm mongoskin

我安装了模块mongoskinsudo npm install mongoskin -g) - 成功安装。

当我尝试使用(index.js)启动supervisor index.js时,出现此错误:

module.js:340
throw err;
^
Error: Cannot find module 'mongoskin'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object. (/Users/smithua/Documents/uezo.pro/dnode-node/im.js:5:13)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
DEBUG: Program node index.js exited with code 8

ls -la /usr/local/lib/node_modules/

0 drwxr-xr-x  14 smithua  staff  476 Jul 30 18:53 dnode
0 drwxr-xr-x   7 smithua  staff  238 Jul 31 11:40 jshint
0 drwxr-xr-x  10 smithua  staff  340 Jul 31 11:00 jslint
0 drwxr-xr-x  17 smithua  staff  578 Aug 12 16:48 mongoskin
0 drwxr-xr-x  15 smithua  staff  510 Jul 30 16:40 mysql
0 drwxr-xr-x  20 smithua  staff  680 Jul 31 11:09 npm
0 drwxr-xr-x  19 smithua  staff  646 Jul 31 03:56 promised-io
0 drwxr-xr-x   6 smithua  staff  204 Jul 30 16:40 supervisor

1 个答案:

答案 0 :(得分:0)

您必须在本地安装模块,而不是全局安装。这意味着在使用npm安装时,您必须 NOT 使用-g选项。

在Node.js中,基本上每个应用程序都需要在本地node_modules文件夹中拥有所有依赖项。您可以使用以下命令安装node-mongoskin来实现此目的:

$ npm install mongoskin

全局安装仅用于提供系统范围的二进制文件,例如调试器,测试工具或Express的引导程序。这意味着,当您在全局安装模块时,您可以从系统中的任何位置调用其二进制文件,但是要使应用程序正常工作,您需要在本地安装它。

对于应用程序,全局安装的模块根本不重要(这就是ls命令显示的内容:全局安装的模块。)

希望这有帮助。

PS:请注意,本地安装和全局安装之间的区别与任何模块有关,而不仅仅与mongoskin有关。

PPS:您可能想查看package.json文件,您可以在其中放置您的依赖项,以便您可以使用简单的npm install一次性自动安装它们。要以交互方式创建此类package.json文件,请参阅npm init命令。

PPPS:请在Getting error while using Express with Node.js上看到我的回答,它可以帮助您进一步了解这一切是什么。