无法调用方法'推'在附加JSON数组时未定义的

Cannot call method 'push' of undefined when appending JSON Array

本文关键字:数组 JSON 未定义 调用 方法      更新时间:2023-09-26

不断收到一个错误,我无法将JSON对象推送到JSON数组。我所做的唯一改变是,我这个函数在一个不同的文件中,所以我把它称为一个模块。

index.js

var mods = require('../server/api/getUserMods.js');
var usernamePerms = [ 'settings', 'mod1', 'mod2' ]
console.log(mods.getUserMods(usernamePerms));

getUserMods.js

var fs = require('fs');
exports.getUserMods = function(input) {
  var umkModules = '../umk_modules/';
  var modules = '{"module":[]}';
  var moduleParse = JSON.parse(modules);
  for (i = 0; i < input.length; i++) {
    console.log("Parsing: " + input[i]);
    console.log("At: " + umkModules.concat(input[i],"/","module-view.json"));
    console.log();
    var readModule = JSON.parse(fs.readFileSync(umkModules.concat(input[i],"/","module-view.json"), 'utf8'));
    console.log(readModule);
    moduleParse['modules'].push(readModule);
  };
  modules = JSON.stringify(moduleParse);
  return modules;
};

函数getUserMods获取一个数组字符串,并在指定的文件路径中搜索,找到一个名为module-view.json的文件,然后将其附加到空的JSON数组中。

当跑步时,我得到了这个。。。

moduleParse['modules'].push(readModule);
moduleParse['module'].push(readModule);

您的财产名为module,而不是modules。我不完全确定为什么你会使用JSON,而你可以简单地做:

var moduleParse = {
  module:[]
}