0

我安装了模块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
4

1 回答 1

0

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

在 Node.js 中,基本上每个应用程序都需要将其所有依赖项都放在本地node_modules文件夹中。您可以通过安装 node-mongoskin 来实现这一点:

$ npm install mongoskin

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

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

希望这可以帮助。

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

PPS:您可能想要签出package.json文件,您可以将依赖项放入其中,以便您可以使用简单的npm install. 要以交互方式创建此类package.json文件,请参阅npm init命令。

PPPS:另请参阅我在将 Express 与 Node.js 一起使用时出现错误的答案,它可能会帮助您进一步了解这一切的含义。

于 2013-08-13T10:40:55.493 回答