it-swarm.com.de

node js function gibt [object Object] anstelle eines String-Werts zurück

ich bin ein relativ neues Java-Skript und -Knoten js, . Ich versuche, einen Wert aus einer MySQL-Datenbank zu erhalten, und der Rückgabewert ist [Objekt Object] anstelle einer Zeichenfolge. . Ich habe wirklich keine Antwort gefunden, was das Problem ist. Ich hoffe, jemand hier könnte helfen. Der Zeilenwert ist [Objekt Objekt].

hier ist meine Funktion

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

[object Object] wird im Protokoll angezeigt, wenn ein Objekt mit Schlüsseln und Werten vorhanden ist. Sie können auf Eigenschaften in einem Objekt mit Punktnotation (.) Zugreifen, z 

objectName.propertyName

Wenn properyName ein anderes Objekt ist, wird immer noch [object Object] zurückgegeben, und Sie müssen innerhalb dieses Objekts nach einer anderen Eigenschaft suchen. Eigenschaften können auch Methoden (Funktionen) enthalten. Wenn Sie die String-Version eines Objekts, um sie beispielsweise zu vergleichen, dann verwenden Sie 

JSON.stringify(objectName);

Wenn Sie console.log mit node verwenden und ein tief verschachteltes Objekt vorhanden ist, können Sie möglicherweise den verschachtelten Objektinhalt nicht anzeigen. In diesem Fall können Sie verwenden:

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

Um die Gesamtheit des Objekts anzuzeigen. Sie müssen zwar util in der Datei angeben.

9
George

Dieses Problem ist mir auch aufgefallen, als der folgende Code in einem node.js-Terminal in Verbindung mit "watchman-make" ausgeführt wurde (Watchman-make: siehe Kommentare in der ersten Antwort unter https://www.quora.com/What-IDEs) -are-available-for-node-js-development-on-Linux ).

Der folgende Code (mit der Ausgabe von node.js) zeigt die Punkte, die in der akzeptierten Antwort/den akzeptierten Kommentaren gemacht wurden:

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