怎样做一个自动更新的web应用

最近要给node web app添加一个更新的功能 于是在网上找到了这样一些代码,给我了一些启发

function restartApp(req, res)  
{
    spawn('git', ['pull']);
    child.kill();
    startApp();
    res.send('ok.');
}

function startApp()  
{
    child = spawn('node', ['app.js']);
    child.stdout.setEncoding('utf8');
    child.stdout.on('data', function (data) {
        var str = data.toString()
        console.log(str);
    });
    child.on('close', function (code) {
        console.log('process exit code ' + code);
    });
}

想了下运行流程

  • 检查本地版本与服务器的版本
  • 发现新版本,提醒是否更新
  • 更新时,先下载代码,解压,重新安装包,再重起web
  • 如果失败,还要恢复到原来的状态。