NEDB + CONSOLE.LOG:输出的变化

NEDB + CONSOLE.LOG : change in output

本文关键字:输出 变化 LOG CONSOLE NEDB      更新时间:2023-09-26

我创建了一个数据库(内存中的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 info: "),如下所示:

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的协助

这是因为您向console.log()传递了一个字符串。

Console.log()接受你在第一个例子中使用的docs对象,但是在第二个例子中你将你的对象与一个字符串连接起来;console.log('Concatenation happens here' + docs),现在函数没有按照你想要的方式格式化你的对象。


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

也可以使用%j: console.log('These objects were found: %j 'n Yay!', docs)

格式化

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