Как перебрать объект модуля node.js, чтобы найти все свойства и методы? - PullRequest
0 голосов
/ 24 сентября 2018

Я хочу перечислить все свойства и методы, которые принадлежат модулю os Node.js.Одна альтернатива:

var os = require('os');
Object.keys(os);
Object.getOwnPropertyNames(os);

Поскольку модуль os является объектом, я должен иметь возможность выполнять итерации по нему, как и по любому другому объекту, для вывода списка всех его свойств и методов.Но следующий код выдает ошибку.Пожалуйста, дайте мне знать, что мне здесь не хватает?

for (let i in os) {
    console.log(i + ':'+ os[i])
}

TypeError: Невозможно преобразовать объект в примитивное значение

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Ваш console.log заставляет узел преобразовывать значения объекта в строки:

console.log(i + ':'+ os[i])

Вы можете попробовать без объединения:

console.log(i, os[i])

Так что вы не приведете ваш объект в строку, но я думаю, console.dir() - хороший способ получить информацию, которую вы пытаетесь увидеть.

const os = require('os');
console.dir(os);
0 голосов
/ 24 сентября 2018

os.constants - это объект с null прототипом.Поскольку в нем нет метода toString, его невозможно преобразовать в примитивное строковое значение.

const o = Object.create(null);

console.log('toString', o.toString);
console.log(o + '');

Поскольку console.log немного умнее, чем просто использование toString, вы можете использовать его напрямую:

Object.keys(os).forEach((key) => {
  console.log(key, os[key]);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...