我正在使用fs包为我的meteor项目在服务器启动时打开一个文件。这在本地测试时工作得很好,但是当我部署到流星服务器时,我收到了这个错误。
WARNING Error: ENOENT, open '/server/filename.csv'
WARNING events.js:72
出现错误的代码:
Meteor.startup( function() {
var input = fs.createReadStream(process.env.PWD + 'server/filename.csv');
});
答案 0 :(得分:3)
Meteor并非专为使用fs
读取和写入文件而设计。当您将Meteor应用程序捆绑/以生产模式发布时,文件夹结构与开发中的内容完全不同。
您可以通过在项目中创建名为private
的目录并将文本文件放入其中来读取静态文件。
然后您可以阅读它们(在服务器端)@David Weldon建议:
var text = Assets.getText("filename.csv");
请记住,不建议使用fs
读取文件,因为Meteor版本之间的生产模式目录结构会发生变化。
如果您有一台服务于请求的服务器可能没有以前写入的文件,建议不要写文件。