运行节点模块的问题

时间:2014-07-09 18:50:54

标签: node.js

所以,我得到了臭名昭着的错误:

module.js:340
    throw err;
          ^
Error: Cannot find module '/home/bc/projects/nodejs/pg-connect.js'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:902:3

这是导致它的2行源:

var pg = require('pg');
console.log("Hello world!");

在这里寻求帮助之前,我尝试了几件不起作用的事情:

1)我尝试将其设置为绝对路径,在我的情况下:

var pg = require(/home/bc/node_modules/pg);

2)我尝试将上述目录复制/粘贴到我的项目目录中。

3)我尝试使用以下方式在本地安装模块:

npm install pg 

然而,它安装在路径/hone/bc/node_modules

中而不是当前的directy

我不知道还有什么可以尝试让它发挥作用。

1 个答案:

答案 0 :(得分:0)

正如我在评论中提到的,您似乎已经成功安装了该模块,但位置错误。

快速解决方法是将HOMEDIR/node_modules的内容复制到CURRENTDIR/node_modules

然后你应该能够

var pg=require('pg');

找到"要求的"模块,Node将检查当前目录中的模块目录,不明确地命名为" node_modules",如果找不到那里的模块,Node将向上移回目录路径,直到它找到包含该模块的node_modules目录。必需的模块或它击中根。因此,假设您当前的目录是/home/bc/projects/nodejs,Node将在以下目录中查找pg模块(按顺序):

/home/bc/projects/nodejs/node_modules/pg
/home/bc/projects/node_modules/pg
/home/bc/node_modules/pg
/home/node_modules/pg
/node_modules/pg