lundi 30 mars 2015

NodeJs - calling one method from another in server controller

With the following controller, how can I call one method from another in the same controller?


Specifically, calling login() within a successful signup(), while retaining the same functionality for login() when it is used by a form?


The line this.login(newUser) does not work, nor does plain old login(newUser)


In both scenarios, I get the error:



TypeError: Cannot call method 'login' of undefined





var mongoskin = require('mongoskin');

module.exports = {
login: (function (req, res) {
req.db.collection('auth').findOne({_id: mongoskin.helper.toObjectID(req.body.id)},
function (err, results) {
// log person in and send results to client
}
)
}),

signup: (function (req, res) {
var user = req.body;
req.db.collection('auth').insert(user, function (err, newUser) {
// after adding user, automatically log them in

// does not work:
//login(newUser, function (err) {
// do something
//})

// does not work:
this.login(newUser, function (err) {
// do something
})
}
)
})
}

Aucun commentaire:

Enregistrer un commentaire