NEDB + CONSOLE.LOG:输出变化

时间:2014-03-11 14:12:01

标签: javascript node.js console.log

我创建了一个数据库(wordinfo-nedb在内存中),插入一些数据,然后检索数据(已排序)以便用console.log打印出来。太容易了。奇怪的是,console.log打印输出随着字符串的添加而改变:

wordinfo.find( { $and: [{index: {$lte: 10}},{index: {$gt: 5}}] }).sort({index: 1}).exec(function(err,docs) {
  console.log(docs);
});

控制台上有哪些收益:

11 Mar 09:51:46 - [nodemon] starting `node app.js`
Running myscripts
Express server listening on port 3000
[ { index: 6, value: 'Artistic', _id: 'XfudVdremMDODJWk' },
  { index: 7, value: 'Assertive', _id: 'utiSSGqGDwlD1olv' },
  { index: 8, value: 'Assessing', _id: 'zzhmecUhkUvCfnNA' },
  { index: 9, value: 'Autonomous', _id: 'QPGOZRXv48c9hvhV' },
  { index: 10, value: 'Blunt', _id: 'hrEBQ7tAXuZLAzSk' } ]

现在我更改了打印输出请求,以包含一个小字符串来标识打印出来的内容(" Word信息:"),如下所示:

wordinfo.find( { $and: [{index: {$lte: 10}},{index: {$gt: 5}}] }).sort({index: 1}).exec(function(err,docs) {
  console.log('Word info: ' + docs);
});

在控制台上产生了不同的东西:

11 Mar 09:52:14 - [nodemon] starting `node app.js`
Running myscripts
Express server listening on port 3000
Word info: [object Object],[object Object],[object Object],[object Object],[obje
ct Object]

' docs'变量现在打印出来作为每个记录(对象)的类型而不是内容。为什么?是什么导致了变化?不是一个大问题,只是好奇。 TIA的帮助。

1 个答案:

答案 0 :(得分:0)

这是因为您将字符串传递给console.log()。

Console.log()接受您在第一个示例中使用的docs对象,但是在第二个示例中,您将对象与字符串连接在一起; console.log('Concatenation happens here' + docs),现在功能可以根据需要格式化您的对象。


要正确记录对象,请将它们传递给函数:console.log('Word info: ', docs)

您还可以使用%jconsole.log('These objects were found: %j \n Yay!', docs)

进行格式化

参考:https://developer.mozilla.org/en-US/docs/Web/API/console.log