Node.js nodejs中的自定义模块返回;找不到模块";错误

Node.js nodejs中的自定义模块返回;找不到模块";错误,node.js,module,express,Node.js,Module,Express,我一直在使用express和nodejs在Cloud9IDE中编写一个小的原型应用程序 我本来打算将一些代码重新组织到几个自定义模块中,但当我试图要求它们时,出现了一个错误“找不到模块”。/lib lib文件夹位于我的站点目录的根目录中。我在其中有一个文件“test.js”,它有一个简单的演示来尝试并使其工作 exports.test = function(){ return 'hello world'; }; 无论我在app.js中放置require('./lib')还是requir

我一直在使用express和nodejs在Cloud9IDE中编写一个小的原型应用程序

我本来打算将一些代码重新组织到几个自定义模块中,但当我试图要求它们时,出现了一个错误“找不到模块”。/lib

lib文件夹位于我的站点目录的根目录中。我在其中有一个文件“test.js”,它有一个简单的演示来尝试并使其工作

exports.test = function(){
  return 'hello world';  
};
无论我在app.js中放置require('./lib')还是require('./lib/test'),它都会抛出相同的错误

有什么想法吗?

两个潜在的错误:

1-require()查找名为index.js的文件。因此,尝试将test.js重命名为index.js可能会起作用


2-您的路径错误。lib文件夹是否与调用require()的文件位于同一文件夹中?

您的项目是如何组织的?嗯,为什么能够引用刚果而不将文件称为“索引”呢?这是因为文件名是在require中指定的。使用require('./lib/刚果')将在名为刚果的目录中查找index.js文件,或在lib目录中查找刚果.js文件。如果您说require('./lib/刚果/'),它将只在刚果目录中查找index.js,require('./lib/刚果.js')将只在lib目录中查找刚果.js文件。require('./lib/刚果')是不明确的。我不确定它查找它们的顺序,或者如果它们都存在,它将使用哪个顺序。因此,您可以使用require('./lib/test.js'),而不是更改文件名。我已尝试添加require(“./lib/test”)和require(“./lib/test.js”)两个都抛出了我在初始问题中报告的相同错误。虽然这需要包含在控制器中。这会改变情况吗?