如何使用node.js在命令行中创build一个跟踪定时器

我试图在命令行中build立一个简单的时间跟踪工具,基本上我想运行启动和停止命令,并输出经过的时间。 目前我有问题,因为我的计时器variables不持有请求之间的值。 这是我到目前为止写的简单的脚本; 我是否需要产卵另一个进程,或者我应该只是将开始时间存储在一个.txt文件或数据库,并从那里使用它?

#! /usr/bin/env node var cli = require('commander'), time, timer = null; cli .version('0.0.1'); cli .command('start') .description('Start timer') .action(start); cli .command('stop') .description('Stop timer') .action(stop); cli.parse(process.argv); function start() { timer = new Date; } function stop() { time = new Date - timer; hours = Math.floor(time/3600); seconds = time % 3600; minutes = Math.floor(seconds / 60); seconds = seconds % 60; seconds = Math.floor(seconds); console.log(hours + ' hours ' + minutes + ' minutes ' + seconds + " seconds") } 

如果没有一些外部机制来存储某种types的数据(例如数据库,平面文件等),那么每个程序的调用都不知道其他任何调用的情况。

每次运行应用程序时,所有的variables都被初始化,写入,读取等等,然后一旦你的应用程序停止了所有的操作,那么它所使用的所有内存都会被返回到操作系统,所有的variables消失。

最简单的方法来保持时间可能会让你的代码读取和写入到一个平面文件(也许在一个JSON格式)。 这确实有潜在的问题,如并发和文件locking,但我不会担心,直到他们真正成为一个问题。 (然后你可以使用数据库等)。