JSON.parse () возвращает [объект Object] (Node.Js) - PullRequest
0 голосов
/ 21 февраля 2019

Я работал над модулем узла довольно давно и понял, что если бы я хотел синхронную и асинхронную функцию, мне пришлось бы искать другой способ вызова функции.

Прямо перед тем, как явызовите функцию обратного вызова, если я утешаю ее., она работает нормально и выводит как объект.Регистрация typeof также говорит, что это объект.Однако, как только он попадает на другую сторону, в файл test.js, он всегда выводит как

[объект объекта]

Если я регистрирую typeof, это говорит о том, что это объект.Если я попытаюсь записать какое-либо значение, оно не будет работать.Массив из двух объектов выводит, как этот

[объект Object], [объект Object]

Это работает правильно, если я использую JSON.stringify (), но я бынравится выводить его как проанализированный.

Примечание. Я все еще могу получить доступ к значениям в файле.

КОД:

test.js (Мой тестовый файл)

var val;
instances.findInstance(config, function(err, res){
 if (err){
   arkin.error(err);
 }
 val = res;
});

console.log('\n\nOUT\n' + val.failures[0].failure);

index.js (файл, в котором будут находиться функции)

module.exports.findInstance = async function(config, callback){
  var returned = instances.find(config);

  const errorJson = JSON.parse(fs.readFileSync(__dirname + '/error.json', 'utf8'));

  end(); //Deletes the JSON files

  if (globalError === true){
    let err = new Error(JSON.stringify(errorJson));
    if (!err){
      err = 'An unknown error occured';
    }
    returned = undefined;
    callback(err, returned);
  }else{
    let err = undefined;
    callback(err, returned);
  }
}

main.js (предыдущий index.js. Фрагмент, который обрабатывает возврат)

  //RESULTS
  let result = JSON.parse(fs.readFileSync('./results.json', 'utf8'));

  if (globalError === true){
    return 'ERROR';
  }else{
    return result;
  }

Спасибо за вашепомощь!

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Для просмотра свойств объекта следует использовать console.dir.

MDN console.dir

Отображение интерактивного списка свойств объекта.указанный объект JavaScript.Выходные данные представлены в виде иерархического списка с раскрывающимися треугольниками, которые позволяют видеть содержимое дочерних объектов.

0 голосов
/ 21 февраля 2019

У меня небольшой ответ, т. Е. Мы используем JSON.parse() для разбора строки.

Данные, поступающие с веб-сервера, всегда являются строкой.Чтобы преобразовать это в объект, мы используем этот метод разбора.

Но в вашей проблеме, я думаю, что с сервера ничего не идет.Если данные не поступают с сервера, то этот JSON.parse() метод возвращает параметры по умолчанию.т.е. [Object Object].

Это моя точка зрения.Пожалуйста, проверьте один раз.

...