如何将方法的参数传递给赋值运算符的左侧?

我正在尝试更新量角器 nodejs 中 JSON 文件的键值对。无法将“键”参数传递到“等于”运算符的左侧以更新 JSON 文件中的值。请找到以下代码并帮助我解决此问题:


调用方法:


this.test = async function () {

await writeToJSON(title, test-name-07282020-1234);

}

方法:


async function writeToJSON(key, value) {


  const { readFile, writeFile } = require('fs').promises;

  const jsonFilePath = `${__dirname}/testdata.json`;

  let data = JSON.parse(await readFile(jsonFilePath));


  data.LANG.TEST2.Default.key = value;  // line 5 ..due to key is not read from

  // the parameter passed in the method. It is trying to look the field 'key' in 

  //json file to update the value.


  writeFile(jsonFilePath, JSON.stringify(data, 2, 2)).then(() => {

    console.log('Finished writing to json file')

  })

}

测试数据.json:


    {

  "LANG": {

    "TEST1": {

      "Default": {

        "username": "value1",

          "password": "value2"

      }

    },

    "TEST2": {

      "Default": {

        "username": "value1",

          "password": "value2",

            "title": "test-name-05252020-4786"


      }

    }


  }

它在第 5 行失败


我希望密钥读作“标题”并为其分配值“test-name-07282020-1234”。请在这里帮忙!


杨魅力
浏览 76回答 1
1回答

慕慕森

您必须使用括号表示法进行访问,它非常适合您的用例:data.LANG.TEST2.Default[key] = value;
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript