节点js函数返回而不是string值

我很安静新来的Java脚本和节点js,我想从一个MySQL数据库中获取一个值,返回值是[对象对象]而不是一个string。 我真的没有在网上find任何答案是什么问题。 我希望这里有人可以帮助。 行值是[object Object]。

这是我的function

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); }); }; 

当存在具有键和值的对象时,日志中出现[对象对象]。 您可以使用点符号(。)访问对象中的属性,例如

 objectName.propertyName 

如果properyName是另一个对象,它仍然会返回[object Object],所以你需要在其中寻找另一个属性。 属性也可以包含方法(函数)。 如果你想得到一个对象的string版本,以比较它们,然后使用

 JSON.stringify(objectName); 

在节点上使用console.log时,如果您有深度嵌套的对象,则可能无法查看嵌套的对象内容。 在这种情况下,您可以使用:

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

查看整个对象。 尽pipe您必须在文件中需要util。

我也遇到了这个问题,在node.jsterminal中运行以下代码,并与“watchman-make”(watchman-make:请参阅https://www.quora.com/What-IDEs-are -available-for-node-js-development-on-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}}}}}