Я тихий новичок в java-скрипте и узле js, я пытаюсь получить значение из базы данных MySQL, и возвращаемое значение - [объектный объект] вместо строки. я действительно не нашел никакого ответа онлайн, в чем проблема. Я надеюсь, что кто-то здесь может помочь. значение строки [объект объекта].

Вот моя функция

exports.getAllIdInfo=  function(dbConnection, tables ,id , callback){
        var tableName= tables[i];
        var tableVariable = tableName;
        var myQuery = 'SELECT time, ' + tableVariable + ' FROM ' + tableName + ' WHERE id= ' + id;
        var query = dbConnection.query(myQuery, function (err, row, result) {       
            console.log(query.sql);
            if (err) {
                console.log("getAllGoodIds error");
                console.error(err);
                return;
            }
            console.log("row is: " + row);
            callback(row);
        });
};
12
daniel the man 14 Дек 2015 в 13:33

3 ответа

Лучший ответ

[объект Объект] появляется в журнале, когда есть объект с ключами и значениями. Вы можете получить доступ к свойствам объекта с точечной нотацией (.), Например

objectName.propertyName

Если ProperyName является другим объектом, он по-прежнему будет возвращать [объект Object], и поэтому вам нужно искать другое свойство в этом. Свойства могут также содержать методы (функции). Если вы хотите получить строковую версию объекта, чтобы сравнить их, например, используйте

JSON.stringify(objectName);

При использовании console.log с узлом и у вас есть глубоко вложенный объект, вы не сможете просматривать содержимое вложенного объекта. В этом случае вы можете использовать:

console.log(util.inspect(objectName, false, null));

Для просмотра всего объекта. Хотя вы должны требовать утилиту в файле.


Может быть, у вас есть что-то вроде:

const myObject = { hello: 'world' };
console.log('My object: '+myObject);

Проблема в том, что он преобразует myObject в строку в консоли, например, используя myObject.toString(). В этом случае вы можете упростить для себя и отделить его следующим образом:

const myObject = { hello: 'world' };
console.log('My object:', myObject);

И консоль теперь может интерпретировать myObject и отображать это красиво.

18
George 18 Окт 2019 в 23:09

Я также столкнулся с этой проблемой, запустив следующий код в терминале node.js вместе с «watchman-make» (watchman-make: см. Комментарии в первом ответе по адресу https://www.quora.com/What-IDEs-are-available-for-node-js -развитие - на - Linux ) .

Следующий код (с выводом node.js) иллюстрирует пункты, сделанные в принятом ответе / комментариях:

function arrayToList(array) {
  var list = {};
  for (var i = array.length - 1; i >= 0; i--) {
    list = {value: array[i], rest: list};
  }
  return list;
};

console.log(arrayToList( [1, 2, 3, 4, 5] ));
// { value: 1,
//  rest: { value: 2, rest: { value: 3, rest: [Object] } } }

// '[Object]' ?
// http://stackoverflow.com/questions/34264800/node-js-function-return-object-object-instead-of-a-string-value

var obj = arrayToList([1, 2, 3, 4, 5]);

console.log('%j', obj);
// {"value":1,"rest":{"value":2,"rest":{"value":3,"rest":{"value":4,"rest":{"value":5,"rest":null}}}}}

console.log(JSON.stringify(obj));
// {"value":1,"rest":{"value":2,"rest":{"value":3,"rest":{"value":4,"rest":{"value":5,"rest":null}}}}}
1
Victoria Stuart 1 Мар 2017 в 23:49

Используйте один из вариантов:

console.log("%o", yourObjName)
console.log(JSON.stringify(yourObjName))
console.log(JSON.stringify(yourObjName, null, 3))
0
moulay youssef Asakour 23 Мар 2020 в 19:30