如何为命令行工具保留用户数据?

时间:2014-08-01 03:22:31

标签: node.js command-line-interface

我只是冒险进入Node.js,特别是在使用它来创建小型命令行工具时。

我的问题:如何使用命令行工具保留数据?例如,如果我想跟踪某些文件的大小,我需要保留这些文件的更改(添加和删除)的运行记录,以及相关的日期/时间信息。

在Web上,将这种数据存储在服务器上的数据库中,然后在需要时再次查询数据库。但是,当您创建一个旨在用作命令行工具的Node模块时,您是如何做到的?

我正在追求一些通用的方向。我现在甚至都不知道谷歌会做些什么。

1 个答案:

答案 0 :(得分:2)

这实际上取决于您正在做什么,但一种简单的方法是将您想要保存的数据保存到文件中,并且由于我们正在谈论节点,因此将其存储为JSON格式。

我们假设您有一些数据:

var data = [ { file: 'foo.bar', size: 1234, date: '2014-07-31 00:00:00.000'}, ...]

(它实际上并不重要,只要它可以是JSON.stringifiy() d)

您可以使用以下方式保存:

fs.writeFile(filename, JSON.stringify(data), {encoding: 'utf8'}, function(err) { ... });

然后再次加载:

fs.readFile(filename, {encoding: 'utf8'}, function(err, contents) {
    data = JSON.parse(contents);
});

您可能希望让用户能够通过以下参数指定您要保存数据的文件的名称:

node myscript.js <data_file>

您可以通过process.argv

获取传递的参数
var filename = process.argv[2]; // Be sure to check process.argv.length and have a default

如果您希望变得更加复杂,可以使用minimist之类的内容:

node myscript.js --output <data_file>