2017-09-25 55 views
0

我正在运行node v6.11.2,而我的MongoDB是3.4.7版本。 我有一个MongoDB,有几个用户使用passportjs和express session来注册会话。对于渲染之类的东西displaynames,用户偏好等我使用EJS是这样的:Nodejs Express应用程序 - 将MongoDb光标转换为JSON

    <p> 
         <strong>id</strong>: <%= user._id %><br> 
         <strong>email</strong>: <%= user.local.email %><br> 
         <strong>password</strong>: <%= user.local.password %><br> 
         <strong>Display name</strong>: <%= user.info.displayname %><br> 
         <strong>Subjects</strong>: <%= user.info.subjects %><br> 
        </p> 

渲染此EJS页面时,将GET请求引用举行会议这样的用户:

user: req.user 

这不适合我现在要做的事情,因为它需要用户登录。我想有一个页面,我可以显示注册用户,包括他们的显示名称,他们的一些偏好等(如公开个人资料)。 我试过(只是为了测试目的)滑动的下面这行代码在我的app.js文件:

console.log(db.users.find({})); 

我想到这回我DATABSE所有对象(和它如果我运行它(不执行console.log)在我蒙戈壳),而是它返回一个指针这样的:

Cursor { 
    _readableState: 
    ReadableState { 
    objectMode: true, 
    highWaterMark: 0, 
    buffer: BufferList { head: null, tail: null, length: 0 }, 
    length: 0, 
    pipes: null, 
    pipesCount: 0, 
    flowing: null, 
    ended: false, 
    endEmitted: false, 
    reading: false, 
    sync: true, 
    needReadable: false, 
    emittedReadable: false, 
    readableListening: false, 
    resumeScheduled: false, 
    defaultEncoding: 'utf8', 
    ranOut: false, 
    awaitDrain: 0, 
    readingMore: false, 
    decoder: null, 
    encoding: null }, 
    readable: true, 
    domain: null, 
    _events: {}, 
    _eventsCount: 0, 
    _maxListeners: undefined, 
    _opts: {}, 
    _get: [Function: thunk] } 

我如何将它转换为JSON? 在此先感谢您的帮助。

回答

0

我固定它,如下所示:我添加的几行代码,以我的GET请求:

User.find({}).exec(function(err, users) { 
      if (err) throw err; 
      res.render('mentors.ejs', { 
       'users': users 
      }) 

当时我能够访问JSON如下:

<% users.forEach(function (user) { %>  
    <p><%= user.info.displayname %></p> 
     <p><%= user.info.subjects %></p>          
<% }) %> 
0

您可能想要在db.users.find({}).toArray()中使用toArray()方法。这会返回用户列表而不是游标。

+0

感谢您的回答,但我自己想清楚了。我想在问一个问题之前,我没有充分考虑这个问题。我会回答我自己的问题。 –

相关问题