我安装了模块mongoskin
(sudo 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
答案 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上看到我的回答,它可以帮助您进一步了解这一切是什么。