流星 - 创建一个文件被下载(没有触发流星重启)

问题描述:

我想创建一个文件,然后使用流星,但我不希望服务器重新启动时,我创建/更新文件公共目录。流星 - 创建一个文件被下载(没有触发流星重启)

用户将点击一个按钮在服务器上创建一个配置文件,我希望用户能够下载该配置文件。

有没有办法做到这一点,而不触发服务器重新启动?

我已经尝试创建一个链接到文件并创建一个隐藏的文件,但没有任何工作。

谢谢你的时间。

服务器因为在开发模式下运行而重新启动, 当它在生产环境中运行时,它不会在内容更改时重新启动。

要在生产环境中运行,只有我知道的是,捆绑申请后,
看一看这里的方法:http://docs.meteor.com/#deploying

+0

感谢您的意见。真的很不幸,在开发过程中没有办法控制重启。 – user1505103 2012-07-06 14:27:29

尝试meteor run --production。这可能会解决你的问题。

如果你不希望在生产模式下运行,这里是一个解决办法:

  1. 为了防止重装,你必须生成位于项目存储库之外的文件夹中的文件。
  2. 然后你将有你的流星应用程序来服务该文件夹的内容。

下面是使用connect NPM库,让您的本地文件夹/meteor/generated_files网址hostname.com/downloads/下担任一个例子:

var connect = Npm.require('connect'); 
var fs = Npm.require('fs'); 

function serveFolder(urlPath, diskPath){ 
    if(!fs.existsSync(diskPath)) 
     return false; 
    RoutePolicy.declare(urlPath, 'network'); 
    WebApp.connectHandlers.use(urlPath, connect.static(diskPath)); 
    return true; 
} 

serveFolder('/downloads', '/meteor/generated_files/'); 

published非常原始的包我有做到了这一点。

+0

RoutePolicy&WebApp对象呢,它们从哪里来?我的代码崩溃,因为它们没有被定义。 – nearpoint 2014-07-04 18:07:20

+0

好点! 你必须把它放在一个包中,并在'package.js'中指定'api.use(['webapp','routepolicy'],'server');''。 我发布了我的软件包,只是这(我编辑我的答案与链接)。 – 2014-07-05 08:31:37