gpt4 book ai didi

node.js - 如何使用node.js在命令行中制作跟踪计时器

转载 作者:太空宇宙 更新时间:2023-11-04 01:09:52 27 4
gpt4 key购买 nike

我正在尝试在命令行中构建一个简单的时间跟踪工具,基本上我想运行启动和停止命令并输出耗时。目前我遇到了问题,因为我的计时器变量没有在请求之间保存值。这是我到目前为止编写的简单脚本;我是否需要生成另一个进程,或者我应该将开始时间存储在 .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")
}

最佳答案

如果没有某种外部机制来存储任何类型的状态(例如数据库、平面文件等),程序的每次调用都将不知道它的任何其他调用中发生了什么。

每次运行应用程序时,所有变量都会被初始化、写入、读取等,然后一旦应用程序停止,所有内容都会被装箱,它使用的任何内存都会返回到操作系统,并且所有变量都会消失。

持久时间的最简单方法可能是让代码读取并写入平面文件(可能采用 json 格式)。这确实存在潜在的问题,例如并发和文件锁定,但在它们真正成为问题之前我不会担心这一点。 (然后你就可以使用数据库等)。

关于node.js - 如何使用node.js在命令行中制作跟踪计时器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18932300/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com