Nodejs找不到模块

尝试使用任何全局模块时出现错误,例如:

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:362:17) at require (module.js:378:17) at Object.<anonymous> (C:\BitNami\wappstack\...\test\app.js) at Module._compile (module.js:449:26) at Object.Module._extensions..js (module.js:467:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Module.runMain (module.js:492:10) 

我安装了快速命令:

 npm install -g express 

我的app.js:

 var express = require('express'); 

并使用Windows PowerShell或Node.js命令提示符窗口运行它:

 node app.js 

真的不知道出了什么问题,我在窗口中读了一些关于环境variables的东西,这可以吗?

解决/更新

问题是:Windows环境variables未configuration为npm文件夹。 search您的npm文件夹并在环境variables中添加path。

您应该在本地安装Express:

 npm install express 

然后像你那样要求:

 var express = require('express') 

只是从这里引用:

https://www.npmjs.org/doc/files/npm-folders.html

  • 如果你打算要求()它在本地安装。
  • 如果要在命令行上运行它,请全局安装它。
  • 如果你需要两个,那么在两个地方安装它,或使用npm链接

我在Windows7 / x64上遇到了同样的错误,并在环境variables中添加了以下内容,解决了这个问题:

 NODE_PATH=C:\Users\[USERNAME]\AppData\Roaming\npm\node_modules 

*用您的实际系统用户名replace[USERNAME]

我在Linux上工作,但是当我需要明确的时候,我正在用它的相对path来安装它,它工作正常:

 var express = require('./public/node_modules/express'); 

我敢肯定,同样的事情也将与Windowspath一起工作。 如果你想更加明确地声明一个绝对path,那么这将是核心选项,以确保你始终确切地知道你的模块在哪里被加载,而不pipe脚本从哪里运行。

如果使用明确的path后仍然有问题,我不知道问题可能是什么。 。 。

另一个选项是运行npm install –save express