在meteorjs中定位文件的路径

时间:2015-05-28 17:17:22

标签: javascript node.js meteor coffeescript npm

我在meteorjs中有一个项目正在使用节点文件系统来读取文件,但是我无法找到要读取的文件。

我的档案位置

Server
    - startup
         - app.load.coffee
         - myfileToBeRead.txt

我在app.load.coffee中尝试

fs = Npm.require('fs')
console.log fs.readFileSync 'server/startup/myfileToBeRead.txt'

我无法按原样阅读文件

Error: ENOENT, no such file or directory 'server/startup/myfileToBeRead.txt'

我认为由于meteor合并了js文件中的所有内容,我必须添加文件的完整路径。 我也尝试过其他路径(完整路径,没有完整路径)。你能指出我正确的方向吗? 谢谢

2 个答案:

答案 0 :(得分:1)

在David的回答中,我还发现我可以使用项目的assets / app目录执行此操作。我所要做的就是将文件添加到名为private的目录中。这也可以帮助我写入目录中的文件。

fs = Npm.require('fs')
console.log fs.readFileSync "assets/app/myfileToBeREad", 'utf8'

答案 1 :(得分:0)

如果要检入文件

这是一个简单的案例 - 只需将文件放在private目录中,然后使用assets api访问它。有关更多示例,请参阅my blog post关于此主题的内容。

如果文件应该存在于服务器上的其他位置

使用与项目无关的目录的绝对路径,例如/tmp/home/foo/bar。捆绑和部署应用程序后,流星项目内的目录会混乱,因此不能指望它们的存在。使用上面的示例,如果您执行以下操作,它应该可以工作:

var fs = Npm.require('fs');
fs.readFileSync('/tmp/myfileToBeRead.txt');