javascript - 如何将 POST 请求中的 json 对象写入/附加到 JSON 文件?
问题描述
我想使用 POST 请求提供的数据将 JSON 元素添加到 JSON 文件。这已经可行了,我只是不知道如何将 id 添加到数据中,我该怎么做?
我尝试了很多,我创建了一个全新的 JSON 对象并尝试将其添加到我的文件中,但它不起作用,我尝试将数据添加到从 POST 请求中给出的数据中,如下所示:body += { "id": 10}; 这会产生一个未定义的错误。
这是我处理 POST 请求的方式:
} else if (req.method === 'POST' && pathname === 'Kunden') {
res.writeHead(200, {
'Content-Type' : 'application/json'
});
var body = '';
req.on('data', function(data) {
body += data;
});
req.on('end', function() {
fs.readFile('Kunden.json', function(err, kundenJSON) {
if (err) {
console.log(err);
}
var kunden = JSON.parse([kundenJSON]);
kunden.kunde.push(JSON.parse(body));
kundenJSON = JSON.stringify(kunden);
fs.writeFile('Kunden.json', kundenJSON, function(err) {
if(err) {console.log(err);
}});
});
});
}
}).listen(8081);
这是我已经存在的 JSON 文件:
{"kunde":[{"id":1,"name":"Customer1"},{"id":2,"name":"Customer2"},{"id":3,"name":"Customer3"}]}
基本上我从 POST req 中获取“名称”,我必须添加以下 id(在第一个请求中,这将是 4,然后是 5,依此类推),然后将其附加到我的文件中。
最后我的文件应该是这样的:
{"kunde":[{"id":1,"name":"Customer1"},{"id":2,"name":"Customer2"},{"id":3,"name":"Customer3"},{"id":4,"name":PostData"}]}
但我现在只能管理这个:
{"kunde":[{"id":1,"name":"Customer1"},{"id":2,"name":"Customer2"},{"id":3,"name":"Customer3"},{"name":PostData"}]}
解决方案
如果我对您的理解正确,您希望在将新对象保存到文件时将其添加到新对象中。这基本上很容易,但您还应该知道如何正确跟踪 id。
var kunden = JSON.parse([kundenJSON]);
var newKunde = JSON.parse(body);
newKunde.id = 4;
kunden.kunde.push(newKunde);
kundenJSON = JSON.stringify(kunden);
我说的问题是,你怎么知道新的id?你可以说newId = kunden.kunde.length + 1
- 但如果你稍后删除一个,你将有重复的 ID。您还需要考虑如何处理未来的唯一 ID。
推荐阅读
- php - 当使用 Laravel 添加新项目时,如何自动增加列以使值增加 1?
- node.js - 无法在 mongodb 查询中执行复杂的嵌套?
- wildfly - 仅在测试期间使用“测试配置文件”公开 REST 控制器
- javascript - 为tizen os“构建”一个react项目很热
- sql-server - SSDT 对视图对象有未解析的引用,但对过程工作正常
- python - 将具有相同名称的html输入类型转换为键值jquery
- python - 对象检测 API - 处理多次标记的背景图像和对象
- javascript - 并排对齐 2 个图表(饼图、条形图)
- javascript - 无法序列化以使用 javascript 生成的输入文件
- java - 在Android中滑动到图像的特定部分