代码之家  ›  专栏  ›  技术社区  ›  iqbalmp

Express push方法不更新JSON数据文件

  •  0
  • iqbalmp  · 技术社区  · 6 年前

    我是Express/node平台的初学者,正在编写示例代码。一旦npm服务器启动,初始数据字符串将从employeeData.js文件中读取,这是一个JSON字符串。但是,这些更改不会写入实际的数据文件。有人能帮忙吗?

    从数据插入代码:

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

    数据目录(data/employeeData.js)中的实际JSON数据

    module.exports = {
      employees:
      [
        {
          "id": 1,
          "name": "test1",
          "post": "post1"
        },
        {
          "id": 2,
          "name": "test2",
          "post": "post2"
        }
    };
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   Ihor Sakailiuk    6 年前

    现在,您的数据只在RAM中更新,您可以将更改保存到,例如, json -文件,但不是 js -源文件(实际上您可以同时执行这两种操作,但第二种情况看起来非常奇怪)。

    为了 json文件 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();