我有centOS:当我尝试运行需要express的node.js应用程序时,出现以下错误:
module.js:340
throw err;
^
Error: Cannot find module 'express'
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.<anonymous> (/var/www/tipsterPro/index.js:2:15)
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 Function.Module.runMain (module.js:497:10)
我验证了express在node_modules目录中:
root@myServer [/usr/local/lib/node_modules]# ls
./ ../ express/ express-generator/ forever/ n/ npm/ pm2/ supervisor/
我在node.js项目的顶层目录中找到了几条声明要安装Express的帖子。有没有一种方法可以不必在我拥有的每个项目中都安装Express?应该有一种方法将其指向安装目录。附加信息:我安装了节点并在全球范围内表达。我还使用安装了express-generator npm install -g express-generator
。
顺便说一句:节点模块安装在此位置(不确定是否正确): /usr/local/lib/node_modules
我结束了本地安装,在阅读了有关本地快速安装与全局安装的利弊之后,如果在本地安装快速安装可能会更好。一旦在本地安装,它就会成功运行。
节点模块查找算法如下所示(来自Action。中的Node.js):
因此,如果您在项目根目录的node_modules中安装了模块,则将在每个子目录和文件中找到该模块。正如您在该图的最后一点所看到的,可以通过设置NODE_MODULES环境变量来指定搜索目录。在全球范围内安装Express时,它可能位于/usr/local/bin/express
。您可以使用以下命令启动应用程序时设置NODE_MODULES目录
NODE_MODULES=/usr/local/bin/ node app.js
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句