gpt4 book ai didi

javascript - 我在日志文件中存储键值对象时遇到了一些麻烦

转载 作者:行者123 更新时间:2023-12-02 15:58:37 25 4
gpt4 key购买 nike

var FileHasher = require("./FileHasher");

if (process.argv.length < 3) {
console.log("Program file and one argument are required for this program.");
process.exit(1);
}

var filename = process.argv[2];
var fs = require('fs');
var file = fs.readFileSync(filename, "UTF-8"); // get file contents
var data = fs.readFileSync("../sha1.txt", "UTF-8"); // read current key-value pairs

console.log(data); // print all current key-value pairs

var filesha1 = FileHasher(file);

console.log(filesha1);

var object = {
name: filename,
value: filesha1
};

console.log(object);

fs.appendFile("../sha1.txt", JSON.stringify(object), function(err) {
console.log(err);
console.log(object); // prints object so I know it was stored correctly
});

现在一切正常。但是,将对象保存到文本文件时,而不是获取此格式:

{
"name":"sha1.js",
"value":"6d358b6f267e22e327c1028e79a5c8b200bf453d"
};

我明白了:

{"name":"sha1.js","value":"6d358b6f267e22e327c1028e79a5c8b200bf453d"}

我想在保存对象时更改间距并添加分号。将来我还计划解析此列表以检查文件是否已存在,并在文件的 sha1 更新时更改该值。如果能指导我以正确的方式格式化我的代码或对象,或者我应该使用不同的函数,将不胜感激!

最佳答案

在解析时,忽略分号,这两件事是相同的。 JSON 对象后面的分号无效,因此您应该在记录之间使用分号(如果有的话,逗号会更合适)。

现在,the JSON.stringify function有一些鲜为人知的参数控制空白和其他 pretty-print 功能。看起来您想要 JS 标准的两空格缩进,这将是像 JSON.stringify(object, null, ' ') 这样的调用。

要添加分号(您确实不应该这样做),您可以简单地使用字符串连接:

fs.appendFile("../sha1.txt", JSON.stringify(object) + ';\n', function(err) {

这将在 JSON 字符串后添加分号和换行符。由于分号是在序列化后添加的,因此无论行数如何,分号都会出现在消息末尾。

关于javascript - 我在日志文件中存储键值对象时遇到了一些麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31387272/

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