【问题标题】:ENOENT Error when deployed to meteor server部署到流星服务器时出现 ENOENT 错误
【发布时间】:2015-04-16 12:08:40
【问题描述】:

我正在使用我的流星项目的 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');
});

【问题讨论】:

  • 启动过程中process.env.PWD的值是多少?
  • 目录在开发和生产之间的行为不同。如果它是一个静态文件,你应该改用Assets API

标签: deployment meteor fs


【解决方案1】:

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

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

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

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

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

不建议写入文件,以防您有不同的服务器为请求提供服务,而该请求可能没有先前写入的文件。

【讨论】:

    猜你喜欢
    • 2014-05-28
    • 1970-01-01
    • 2016-01-04
    • 1970-01-01
    • 2020-05-10
    • 1970-01-01
    • 2013-10-04
    • 2016-07-25
    • 2019-12-01
    相关资源
    最近更新 更多