node js de retour de la fonction [object object] au lieu d'une chaîne de valeur
je suis calme nouvelles de java script et node js,
je suis en train d'essayer d'obtenir une valeur à partir d'une base MySQL, et la valeur de retour est [object object] au lieu d'une chaîne.
je n'ai pas vraiment trouvé de réponse en ligne, quel est le problème.
j'espère que quelqu'un ici pourrait aider.
la ligne de la valeur est [object object] .
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);
});
};
Si par la valeur de retour vous dire le rappel de l'argument de la "ligne", c'est probablement un objet contenant des paires clé-valeur dans la ligne (je ne peux que deviner car je ne sais pas lequel sql bibliothèque que vous utilisez), qui devrait être ce que vous voulez vraiment: si c'est un objet, vous pouvez obtenir les valeurs de celui-ci en invoquant ses propriétés, comme la ligne.id de ligne et de.nom ou les colonnes que vous avez dans votre tableau.
ce que la bibliothèque que vous utilisez? nœud-mysql?
Si vous voulez voir comment l'objet est structuré, essayez d'appeler la console.journal(en ligne) (sans ajouter n'importe quelle chaîne) ou la convertir en chaîne de caractères (vous pouvez utiliser du JSON.stringify(ligne) )
(ou journal comme argument:
btw. ne pas concaténer requête de ce type. il est vulnérable à l'injection sql
ce que la bibliothèque que vous utilisez? nœud-mysql?
Si vous voulez voir comment l'objet est structuré, essayez d'appeler la console.journal(en ligne) (sans ajouter n'importe quelle chaîne) ou la convertir en chaîne de caractères (vous pouvez utiliser du JSON.stringify(ligne) )
(ou journal comme argument:
console.log('row is:', row)
(notez la virgule))btw. ne pas concaténer requête de ce type. il est vulnérable à l'injection sql
OriginalL'auteur daniel the man | 2015-12-14
Vous devez vous connecter pour publier un commentaire.
[object object] apparaît dans le journal quand il y a un objet avec des clés et des valeurs. Vous pouvez accéder aux propriétés d'un objet avec la notation de point (.) e.g
Si properyName est un autre objet, il sera toujours retourner [object object] et si vous avez besoin de regarder pour un autre bien à l'intérieur qu'.
Ces propriétés peuvent également contenir des méthodes (fonctions).
Si vous souhaitez obtenir la version de chaîne d'un objet afin de les comparer par exemple, puis utilisez
Lors de l'utilisation de la console.journal avec nœud et vous ont profondément imbriquée objet, vous ne pouvez pas être en mesure d'afficher l'objet imbriqué contenu. Dans ce cas, vous pouvez utiliser:
Pour voir l'intégralité de l'objet. Bien que vous devez exiger util dans le fichier.
console.log()
, qui sera (normalement) à utiliser lesutil.inspect()
sur chaque argument, au lieu de simplement appeler.toString()
sur elle. FWIW, si vous voulez vous connecter, JSON, vous pouvez également utiliserconsole.log('%j', obj)
Hmmm, je ne sais pas pour le JSON chose, sympa 🙂
JSON.stringify a été mis en œuvre à relativement récemment, car il était si populaire. Vous pouvez analyser une chaîne de retour de JSON à un JS objet JSON.parse(string); C'est bon pour la sauvegarde et le chargement des objets avec localStorage.
OriginalL'auteur George
J'ai aussi rencontré ce problème, en exécutant le code suivant dans un node.js terminal en conjonction avec "veilleur-faire" (gardien-faire: voir les commentaires dans la première réponse à https://www.quora.com/What-IDEs-are-available-for-node-js-development-on-Linux).
Le code suivant (avec node.js sortie indiquée) illustre les points soulevés dans les acceptée réponses/commentaires:
OriginalL'auteur Victoria Stuart