部署到流星服务器时出现 ENOENT 错误

ENOENT Error when deployed to meteor server

我正在使用我的流星项目的 fs 包在服务器启动时打开文件。这在本地测试时工作得很好,但是当我部署到流星服务器时,我收到这个错误。

WARNING Error: ENOENT, open '/server/filename.csv'
WARNING events.js:72

出现错误的代码:

Meteor.startup( function() {
   var input = fs.createReadStream(process.env.PWD + 'server/filename.csv');
});

Meteor 不是为使用 fs 读写文件而设计的。当您在生产模式下捆绑 Meteor app/publish 时,文件夹结构与开发中的完全不同。

您可以通过在项目中创建一个名为 private 的目录并将文本文件放入其中来读取静态文件。

然后您可以按照@David Weldon 的建议阅读它们(在服务器端):

var text = Assets.getText("filename.csv");

请记住,不建议使用 fs 读取文件,以防生产模式目录结构在 Meteor 版本之间发生变化。

不建议写入文件,以防您有不同的服务器服务于可能没有以前写入的文件的请求。