node.js:找不到模块'request'

我安装了请求模块 ,并得到错误:

module.js:340 throw err; ^ Error: Cannot find module 'request' 

我读过关于这个错误的所有post,并明白,这是因为模块请求不是全局find,但我已经尝试了2个build议

npm安装请求-g

应该这样安装在/ usr / loca / bin? 因为我没有看到它。

sudo npm链接

/ usr / local / lib / node_modules / request – > / Users / soulsonic / dev / sandbox / node_test / request

每个命令后我重新启动terminal,但不断收到找不到模块错误。

更新

在我的初始目录中一定有某种冲突,因为“npm install request”没有在node_modules(其他10个内部)中添加“request”..在切换到刚刚工作的新目录之后。

如果我用-g开关运行它,我确实看到它安装到/ usr / local / lib / node_modules / request。

似乎我只需要更新我的个人资料,以便上面的path自动添加。

转到您的项目的目录

 mkdir TestProject cd TestProject 

使这个目录成为你的项目的根(这将创build一个默认的package.json文件)

 npm init --yes 

安装所需的npm模块并将其保存为项目依赖项(它将显示在package.json

 npm install request --save 

使用包示例中的代码在项目目录中创build一个test.js文件

 var request = require('request'); request('http://www.google.com', function (error, response, body) { if (!error && response.statusCode == 200) { console.log(body); // Print the google web page. } }); 

你的项目目录应该像这样

 TestProject/ - node_modules/ - package.json - test.js 

现在只需在您的项目目录中运行节点

 node test.js 

您应该简单地在您的项目中本地安装request

只需cd到包含您的js文件的文件夹并运行即可

 npm install request 

我有同样的问题,对我来说npm install request --save 解决了这个问题。 希望能帮助到你。

我遇到了同样的问题,这里是我如何工作..

开放式terminal:

 mkdir testExpress cd testExpress npm install request 

要么

 sudo npm install -g request // If you would like to globally install. 

现在不要使用

节点app.js或节点test.js ,你会遇到这个问题。 您也可以使用此命令打印正在导致的问题。 "node -p app.js"

上面的命令启动nodeJs已被弃用。 反而使用

 npm start 

你应该看到这个..

 testExpress@0.0.0 start /Users/{username}/testExpress node ./bin/www 

打开你的网页浏览器并检查localhost:3000

您应该看到快速安装(欢迎使用Express)

我遇到了同样的问题,因为我在全球安装它,然后我尝试在本地安装它,它工作。

如果某个模块找不到,请尝试使用Static URI,例如:

 var Mustache = require("/media/fabio/Datos/Express/2_required_a_module/node_modules/mustache/mustache.js"); 

这个例子在64位的Ubuntu Gnome 16.04上运行,node -v:v4.2.6,npm:3.5.2参考: Ben Nadel的博客