繁体   English   中英

从文件中读取 JavaScript 对象并将其转换为对象

[英]Read a JavaScript object from a file and convert it to an Object

假设我们有以下文件dataset\\test.js


var dataset={
HK_NetMovement_Censtad: {
      name: 'HK_NetMovement_Censtad',
      keys: [],
      columns: [{
          id: "dateiso",
          name: {
            en: "Mid_yr"
          },
          type: "datetime"
        },
        {
          id: "value",
          name: {
            en: "Pop_size"
          },
          type: "numeric"
        }
      ],
      fearueServer: 'HK_KEY_VALUE'
    },
    HK_CPIchangeseason_Censtad: {
      fearueServer: 'HK_KEY_VALUE',
      columns: [{
          id: "dateiso",
          name: {
            en: "Month"
          },
          type: "datetime"
        },
        {
          id: "value",
          name: {
            en: "Monthly Rate"
          },
          type: "numeric"
        }
      ],
      keys: [],
      name: 'HK_CPIchangeseason_Censtad'
    }
}

我想将它作为Nodejs的对象来阅读。 一种方法是使用eval函数读取它,如下所示:

fs.readFile(filepath, 'utf8', function (err, data) {

eval(data)
console.log(dataset)
})


这工作正常。 但是eval函数存在安全漏洞。 是否有其他解决方法可以避免使用eval

谢谢

如果我将这些文件转换为以下格式

module.exports = function () {
    this.dataset = {
        HK_NetMovement_Censtad: {
            name: 'HK_NetMovement_Censtad',
            keys: [],
            columns: [{
                    id: "dateiso",
                    name: {
                        en: "Mid_yr"
                    },
                    type: "datetime"
                },
                {
                    id: "value",
                    name: {
                        en: "Pop_size"
                    },
                    type: "numeric"
                }
            ],
            fearueServer: 'HK_KEY_VALUE'
        },
        HK_CPIchangeseason_Censtad: {
            fearueServer: 'HK_KEY_VALUE',
            columns: [{
                    id: "dateiso",
                    name: {
                        en: "Month"
                    },
                    type: "datetime"
                },
                {
                    id: "value",
                    name: {
                        en: "Monthly Rate"
                    },
                    type: "numeric"
                }
            ],
            keys: [],
            name: 'HK_CPIchangeseason_Censtad'
        }
}

我可以用

  var j = require('./datasets/'+file)

将它们导入我的文件并使用它们

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM