web-dev-qa-db-fra.com

node js function return [objet Object] au lieu d'une valeur de chaîne

je suis assez nouveau pour le script Java et le noeud js, J'essaie d'obtenir une valeur d'une base de données MySQL, et la valeur de retour est [object Object] au lieu d'une chaîne . répondez en ligne quel est le problème ... J'espère que quelqu'un ici pourra vous aider ... La valeur de la ligne est [objet Objet].

voici ma fonction

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);
        });
};
6
daniel the man

[objet Objet] apparaît dans le journal lorsqu'il existe un objet avec des clés et des valeurs. Vous pouvez accéder aux propriétés d’un objet avec une notation par points (.) 

objectName.propertyName

Si properyName est un autre objet, il retournera quand même [object Object] et vous devez donc rechercher une autre propriété à l'intérieur de celle-ci . Les propriétés pourraient également contenir des méthodes (fonctions) . objet afin de les comparer par exemple, puis utilisez 

JSON.stringify(objectName);

Lorsque vous utilisez console.log avec noeud et que vous avez un objet profondément imbriqué, vous ne pourrez peut-être pas afficher le contenu de l'objet imbriqué. Dans ce cas, vous pouvez utiliser:

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

Pour voir l'intégralité de l'objet. Bien que vous deviez avoir besoin de util dans le fichier.

9
George

J'ai également rencontré ce problème en exécutant le code suivant dans un terminal node.js en conjonction avec "watchman-make" (watchman-make: voir les commentaires en première réponse sur https://www.quora.com/What-IDEs -are-available-for-node-js-development-on-Linux ).

Le code suivant (avec la sortie node.js affichée) illustre les points soulevés dans les réponses/commentaires acceptés:

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}}}}}
0
Victoria Stuart