Node.js从内部模块访问文件

时间:2014-10-04 05:04:20

标签: node.js

我正在尝试从模块内部访问文件。我在模块中给出了文件位置,如下所示。我的模块文件夹叫做helper。

__ dirname +" /../ public / lib / objects"

500错误:ENOENT,没有这样的文件或目录' / home / sushmitsarmah / projects / app / helpers / public / lib / objects'

它给我一个错误,其中location是helper / public / lib / objects。我接下来尝试了这个:

__ dirname +" /../../ public / lib / objects"。这也给了我一个错误。

我应该如何访问公用文件夹?在目录结构中,helper和public处于同一级别。

文件夹结构:

app
 --helpers
     --getData.js
 --public
     --lib
       --objects
 --views
 --app.js

在app.js中我打电话给:     var getdata = require(' ./ helpers / getdata')。getData;

从getData.js里面我想访问objects文件夹。

由于

1 个答案:

答案 0 :(得分:2)

请注意,__dirname指向当前正在执行的脚本所在的目录。因此,在我们的示例中,它是脚本所在的目录。因此,当前工作目录将始终指向app.js的文件夹,其中__dirname将根据正在执行的文件进行更改。

所以你的路径应该是

__dirname + "/public/lib/objects" //from app.js

请注意:

在上面更新的文件夹结构中,当您在getData.js时,__dirname的值将是" / rootpath / app / helpers"。要从那里访问objects文件夹,您必须执行

__dirname + "/../public/lib/objects" //from getData.js