和尚发现回归奇异的json

时间:2013-12-10 07:05:49

标签: javascript node.js mongodb

所以在节点中我有这个代码,这完全是微不足道的......但它没有用。

var collection = db.get('fisforfriends');
var db = monk('localholst:27017/fisforfriends');
...
var userName = req.body.username;

以上作品适合插入。只是向你们展示=)!

console.log(collection.find({}, {username: userName}));

打印出我底部的大量文字。

该元素在数据库中不存在,但我添加元素的功能在前几天工作,所以我并不担心。如果它不存在,该函数会添加它

我所拥有的只是打印所有内容的console.log调用。我希望它只是打印'假'或其他东西。

9 Dec 22:54:27 - [nodemon] starting `node app.js`
Express server listening on port 3000
GET / 200 319ms - 427b
GET /stylesheets/style.css 304 4ms
{ col:
   { manager:
      { driver: [Object],
        collections: [Object],
        options: [Object],
        _events: {} },
     driver:
      { emitter: [Object],
        state: 0,
        _dbconn: [Object],
        db: null,
        username: '',
        password: undefined,
        admin: [Object],
        _collections: [Object],
        bson_serializer: [Object],
        ObjectID: [Object] },
     name: 'fisforfriends',
     col:
      { emitter: [Object],
        state: 0,
        options: undefined,
        skinDb: [Object],
        ObjectID: [Object],
        collectionName: 'fisforfriends',
        collection: null,
        internalHint: null,
        hint: [Getter/Setter] },
     options: {} },
  type: 'find',
  completed: false,
  opts: { username: 'fa', fields: {}, safe: true },
  _events:
   { error: { [Function: g] listener: [Function] },
     success: { [Function: g] listener: [Function] } },
  fulfill: [Function],
  query: {} }
9 Dec 22:54:45 - [nodemon] restarting due to changes...
9 Dec 22:54:45 - [nodemon] C:\Users\hassan\Documents\Hassans_Bravery\fisforfrien
ds\routes\index.js

1 个答案:

答案 0 :(得分:1)

正如我上面所建议的,这不是数据库中的对象,这是在完成执行时将返回对象的承诺

数据库调用几乎总是异步的,尤其是在事件驱动的node.js的情况下。这意味着它需要时间,但您的console.log立即执行。结果不会在那里。

如果我查看文档,第二个参数是你传递的回调函数,它将从查询中检索对象

所以你可以做到

users.find({}).on('success', function (doc) { /* doc is the result available here */ });

users.find({}, function (err, docs){ /* doc is the result available here */ });