I am getting the error:
"TypeError: undefined is not a function" ..for toArray() in the code below.
// Require mongo db user model
var User = require("./models/user.js");
.
.
.
// list of members page ====================================================
// protected page
app.get("/members", isLoggedIn, function(req, res) {
// get array list of usernames
var pttCursor = User.find( { } , { firstname: 1, lastname: 1, _id: 0 } );
var membersArray = pttCursor.toArray(function(err, docs){});
res.render("members.ejs", {
user : req.user, // get user out of session and pass to template
members : membersArray
});
});
I want the /members page to have access to an array of usernames.
edit: I have also tried "cursor.map()" .. I get the same error
// get array list of usernames
var pttCursor = User.find( { } , { firstname: 1, lastname: 1, _id: 0 } );
var membersArray = pttCursor.map(function(pttDoc){
return pttDoc.firstname + pttDoc.lastname;
});
.find
method from model returns Query
object not Cursor
.
To execute query, use .exec()
method on pttCursor
.
Also all async methods should be handled with callbacks.
var pttCursor = User.find( { } , { firstname: 1, lastname: 1, _id: 0 } )
.exec(function(err, membersArray){
res.render("members.ejs", {
user : req.user, // get user out of session and pass to template
members : membersArray
});
});