在Meteor[1.0.0]中写入服务器上的文件(每次构建都不会丢失文件)

Writing to file on the server in Meteor [1.0.0] (without losing the files every build)

本文关键字:文件 构建 Meteor 服务器      更新时间:2023-09-26

我遇到的问题是fs.writeFile写入.meteor下的build文件夹,重建时丢失。

Assets api似乎不允许写入。我想做的就是在文件中写一些文本,然后在下次启动时加载。

具体用例:Steam在其API中返回shaSentryfile的数据,这些数据需要在后续请求中重复使用,否则身份验证过程部分是手动的。

https://github.com/RJacksonm1/node-dota2https://github.com/RJacksonm1/node-dota2/blob/master/test/index.js#L151

我曾考虑过使用一些像S3这样的外部存储服务,但这是一个非常简单的场景——它只是一个文件——但我想了解在Meteor中应该如何管理这样的文件。

我建议在项目目录之外的某个地方编写文件。这样可以避免任何潜在的文件位置和重新加载问题。

如果文件不需要重新启动,我建议使用系统的临时目录,如下所示:

var fs = Npm.require('fs');
var os = Npm.require('os');
var path = Npm.require('path');
var file = path.join(os.tmpDir(), 'foo.txt');

然后可以将readFileSyncwriteFileSyncfile一起使用。

或者,您可以使用环境变量指定路径:

> OUTPUT_DIR="$HOME/output" meteor

然后您可以将上述代码修改为:

var file = path.join(process.env.OUTPUT_DIR, 'foo.txt');