0

我有一个 JSON 模块,其中包含这样的空容器:

{
    "files": {
        "rootNeeded":[],
        "folders":[],
        "files":[],
        "images":[],
        "text":[],
        "unknown":[]
    },
}

我想知道我是否可以简单地通过使用array.push方法将数据从另一个模块推送到这里。就像是 ...

var myModule=require("./myJsonFile");
function(){
    some magic here...
    myModule.files.files.push(files);
}

在此之后我可以在第三个节点模块中使用它......

//my third module
console.log(files.files)

最后每次调用的程序都会被刷新,就像动态数据库一样。

4

1 回答 1

1

您可以,但是您所做的更改不会被保留。此外,如果您使用cluster,每个进程都会有不同版本的对象。

myJsonFile.json

{
  "files": {
    "rootNeeded": [],
    "folders": [],
    "files": [],
    "images": [],
    "text": [],
    "unknown": []
  }
}

mod1.js

var json = require('./myJsonFile');

function pushData() {
  json.files.files.push('test 1');
  json.files.files.push('test 2');
}

pushData();

mod2.js

var json = require('./myJsonFile');
require('./mod1');

console.log(json);

// { files: 
//   { rootNeeded: [],
//     folders: [],
//     files: [ 'test 1', 'test 2' ],
//     images: [],
//     text: [],
//     unknown: [] } }
于 2015-05-12T23:02:54.990 回答