Экспресс-метод push не обновляет файл данных JSON - PullRequest
0 голосов
/ 04 октября 2018

Я новичок в платформе Express / node и работаю над примером кода.Как только сервер npm запущен, начальная строка данных считывается из файла employeeData.js - которая представляет собой строку JSON. Пример кода со мной может добавлять / редактировать / создавать новые записи (сотрудник), и я распечатываю его.Но изменения не записываются в фактический файл данных.Может ли кто-нибудь помочь в этом?

Из кода вставки данных:

saveemployee: function(employee, callback) {
        currentID = currentID + 1;
    employee.id = currentID;
    employees.push(employee);
        callback(null, _clone(employee));
    }

Фактические данные JSON в каталоге данных (data / employeeData.js)

module.exports = {
  employees:
  [
    {
      "id": 1,
      "name": "test1",
      "post": "post1"
    },
    {
      "id": 2,
      "name": "test2",
      "post": "post2"
    }
};

1 Ответ

0 голосов
/ 04 октября 2018

Пока ваши данные обновляются только в оперативной памяти, вы можете сохранить ваши изменения, например, json -файл, но не js -source-файл (на самом деле вы можете сделать оба, но во втором случаевыглядит очень странно).

Для json file-db вы можете использовать lowdb

Пример кода:

const low = require('lowdb');
const FileSync = require('lowdb/adapters/FileSync');

const adapter = new FileSync('employees.json');
const db = low(adapter)

db.defaults({ employees:  [
    {
      id: 1,
      name: "test1",
      post: "post1"
    },
    {
      id: 2,
      name: "test2",
      post: "post2"
    },
  ]})
  .write()

// Add an employee
db.get('employees')
  .push({
    id: 3,
    name: "test1",
    post: "post1"
  })
  .write();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...