在 meteorjs 中定位文件的路径

locating path of a file in meteorjs

我在 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 文件中,我必须添加该文件的完整路径。 我也尝试过其他路径(有完整路径,没有完整路径)。你能在这里指出正确的方向吗? 谢谢

是否应该签入文件

这是一个简单的案例 - 只需将文件放在您的 private 目录中,然后使用 assets api. For more examples, see my blog post 就这个主题访问它。

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

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

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

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

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