node js函数返回[object Object]而不是字符串值

时间:2015-12-14 10:33:02

标签: javascript node.js function callback

我对java脚本和节点js很安静, 我试图从MySQL数据库中获取值,返回值是[object Object]而不是字符串。 我没有真正在网上找到任何答案是什么问题。 我希望有人可以提供帮助。 行值为[object Object]。

这是我的功能

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

3 个答案:

答案 0 :(得分:12)

当存在具有键和值的对象时,

[object Object]会出现在日志中。您可以使用点符号(。)例如

访问对象中的属性
objectName.propertyName

如果properyName是另一个对象,它仍将返回[object Object],因此您需要在其中查找另一个属性。 属性还可以包含方法(函数)。 如果您想获取对象的字符串版本以便比较它们,请使用

JSON.stringify(objectName);

将console.log与节点一起使用并且您具有深层嵌套对象时,可能无法查看嵌套对象内容。在这种情况下,您可以使用:

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

查看整个对象。虽然您必须在文件中要求util。

答案 1 :(得分:0)

我也遇到过这个问题,在node.js终端中运行以下代码并结合" 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}}}}}

答案 2 :(得分:0)

使用以下选项之一:

console.log("%o", yourObjName)
console.log(JSON.stringify(yourObjName))
console.log(JSON.stringify(yourObjName, null, 3))