0

I have a JSON module which contains empty containers like this:

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

and I wonder if I can push data into this from another module simply by using array.push method. Something like ...

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

and after this can I use this in a third node module like this...

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

in the end it will be like dynamic database each time when program called will be refreshed.

1

1 Answer 1

1

You can, however the changes you make will NOT be persisted. Also, if you use cluster, every process will have a different version of your object.

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: [] } }
Sign up to request clarification or add additional context in comments.

4 Comments

i dont understand first we call myjasonfile then called mod1 they are not teh same module
If you create these modules and run node mod2.js you will have the correct result. mod2 calls mod1 and mod1 pushes the data to the array, following the example you provided in your question.
my question here if i push with mod1 and in the late program if i call directly json can i see this changes
What do you mean by "call directly json"? If you do what I did in my example (using require('./myJsonFile')), yes you will have the changes.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.