Получите запрос POST и отредактируйте файл JSON NodeJS

Не могу понять, как редактировать файл json после получения запроса POST от клиента в NodeJS.

Использование webix datatable. После того, как я обновлю данные в таблице, он отправляет запрос POST с выполненной операцией данных + (webix_operation=update/delete/insert), поэтому я подумал, что могу сделать что-то вроде этого:

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended : true }));

app.post("/Page2", function (req, res) {
    var operation = req.body.webix_operation;

    if (operation == 'update') {
        fs.readFile("JSON/DB.json", "utf8", function (err, data) {
            var allData = JSON.parse(data)
            var userData = {
                "id": req.body.id,
                "data1": req.body.data1,
                "data2": req.body.data2,
                "data3": req.body.data3,
            }
            allData.push(userData);
            var newData = JSON.stringify(allData);
            fs.writeFile("JSON/DB.json", newData, "utf8");
            console.error(err.stack);
        })
        res.send();
    }
    else if (operation == 'insert') {
    }
    else if (operation == 'delete') {

    }
    else
        console.log("This operation is not supported")
});

Но это не работает.

Может ли кто-нибудь проверить код и, возможно, выяснить, что я сделал неправильно?


person MarkL    schedule 28.07.2016    source источник
comment
Что вы имеете в виду, говоря, что это не работает? На первый взгляд я вижу, что вы внедрили операцию INSERT вместо обновления, как говорит условие îf. С другой стороны, если вы прикрепите вывод своей консоли, это будет полезно, чтобы помочь вам...   -  person bitifet    schedule 28.07.2016
comment
Разве в вашем заявлении не должно быть allData.push(userData); вместо allData.push(newData);   -  person Shubham Khatri    schedule 28.07.2016
comment
@bitifet не работает, я имею в виду, что при получении запроса POST он ничего не делает. Не редактирует/не перезаписывает файл json. Поэтому я предполагаю, что я сделал что-то не так или я что-то не понимаю.   -  person MarkL    schedule 28.07.2016
comment
Что ж. Я тоже часто делаю что-то не так. Дело в том, чтобы знать, где мой код перестает делать то, что я ожидаю, и для этого помогает размещение некоторых операторов console.log(), как вы обычно делали. Но нам нужно знать, видели ли вы его вывод, и если да, то что именно эхом отобразилось ;-)   -  person bitifet    schedule 28.07.2016
comment
@ShubhamKhatri, изменил это, к сожалению, это ничего не принесло.   -  person MarkL    schedule 28.07.2016
comment
@bitifet, есть ли другой способ сделать то же самое, не используя экспресс и bodyparser?   -  person MarkL    schedule 28.07.2016