如何创build一个自我更新的Node.js应用程序?

我想用Node.js创build一个应用程序,定期检查更新并安装它们(如果有的话)。

基本组件对我来说很清楚:

  • 包含更新包的Web服务器(或FTP服务器,文件系统,…)
  • 一个版本系统(如SemVer),这样你就可以知道哪个包是新的
  • 用于签署更新包的公钥algorithm

那么,何时检查更新和安装更新可能会有不同的策略:

  • 在应用程序启动
  • 在应用程序结束
  • 空闲时

应用程序甚至可能会closures并自动重新启动。

但还有一些问题:

  • npm上是否有任何已经提供这样的系统的模块?
  • 如何在文件系统中组织不同的版本? 基本上你会有一个主机和多个(版本化)的核心。 是否应该有一个data文件夹的所有人?
  • 如何处理npm install &co。 为新下载的包?
  • 如何处理破损的更新?
  • 你怎么能实现这样的事情,以便它与Heroku公司兼容。 你没有永久的驱动器,你可以开车去?

一般来说:你将如何尝试实现这样的系统?

首先,您可以使用NPM本身进行包装和应用交付。 其次,你可以添加一个脚本文件来在package.json文件中添加一个cron作业(比如'postinstall'或者'update')来定期更新进程。 在这个脚本中,你可以检查你需要的所有更新。 在Heroku中,您可以使用Scheduler Worker进行更新处理。