Javascript 如果json文件已经获得特定数据,如何签入NodeJS

Javascript 如果json文件已经获得特定数据,如何签入NodeJS,javascript,json,node.js,crud,Javascript,Json,Node.js,Crud,我想用NodeJS做一个CRUD操作。但我不知道如何检查JSON文件是否已经获得了特定的部分,然后只更新所需的对象,而不覆盖其他数据,或者在没有记录的情况下添加新数据 这就是我到目前为止所做的(现在插入操作覆盖了整个文件,只留下插入的数据): JSON: JSON: { "id": 1, "name": "Bill", }, { "id": 2, "name": "Steve", }, 代码: var operation = POST.operation;

我想用NodeJS做一个CRUD操作。但我不知道如何检查JSON文件是否已经获得了特定的部分,然后只更新所需的对象,而不覆盖其他数据,或者在没有记录的情况下添加新数据

这就是我到目前为止所做的(现在插入操作覆盖了整个文件,只留下插入的数据):

JSON:

JSON:

{
    "id": 1,
    "name": "Bill",
},
{
    "id": 2,
    "name": "Steve",
},
代码:

var operation = POST.operation;  // POST request comes with operation = update/insert/delete

        if (operation == 'insert') {
            fs.readFile("data.json", "utf8", function (err) {
                var updateData = {
                    id: POST.id,
                    name: POST.name,
                }
                var newUser = JSON.stringify(updateData);
                fs.writeFile("data.json", newUsers, "utf8");
                console.log(err);
            })
        }
        else if (operation == 'update') {
            fs.readFile("data.json", "utf8", function (err) { 

            })
        }
        else if (operation == 'delete') {
            fs.readFile("data.json", "utf8", function (err) {

            })
        }
        else
            console.log("Operation is not supported");
我发现的最多的例子是数据库和Express.js。所以他们帮不了多少忙


抱歉,我是新手。

首先,这不是有效的JSON(除非这只是文件的一部分)。您需要将整个列表包装到一个数组中,使其成为有效的JSON(您可以检查JSON是否有效)

如果您使用这样的结构:

[
    {
        "id": 1,
        "name": "Bill",
    },
    {
        "id": 2,
        "name": "Steve",
    },
]
我认为检查ID是否已经存在的最简单方法是将JSON作为数组读入,并检查ID是否已经分配。大概是这样的:

var json = require('/path/to/data.json'); // Your object array

// In the if (operation == 'insert') block
var hadId = json.some(function (obj) {
  return obj.id === POST.ID;
});

if (hasId) {
    // Do something with duplicate
}

json.push({
    id: POST.id,
    name: POST.name
});

// Write the whole JSON array back to file 
更多关于

因此,基本上您将把整个JSON文件保存在内存中(在
JSON
数组中),当您对数组进行更改时,您将整个更新的列表写回文件

如果这个数组变得非常大,您可能会遇到问题,但在这一点上,我建议您考虑使用数据库。(尽管它不是世界上最大的数据库)在播放和实验时,安装和集成JavaScript都相当容易

我希望这有帮助


祝您好运

检查数据在json文件中是否有密钥及其唯一性,如果没有,则删除日期,如果是,则将其添加到文件中谢谢您的时间和帮助:)没问题!谢谢接受:)。。希望它确实有用,从一开始就有点难学。很高兴有像stack这样的网站!