0
我在驗證使用expressjs和mongodb的東西時遇到了一些問題。在驗證mongodb和expressjs中的問題中的問題
這是評論類
// mongodb configuration
var Server = require('mongodb').Server,
Db = require('mongodb').Db,
ObjectID = require('mongodb').ObjectID,
server = new Server('localhost',27017,{auto_reconnect:true}),
db = new Db('fantacalcio',server);
// mongodb end configuration
var UserModel = function() {
// max and min username length
this.username_max = 15;
this.username_min = 6;
};
// create funcion
UserModel.prototype.create = function(req,callback) {
// opening connection
db.open(function(err,db){
if(!err){
// choosing the collection
db.collection('user',function(err,collection){
if(err){
console.log(err);
}
else{
// Passing the req.body data and a callback to the validate function (see below)
this.validate(req,function(results){
// if the validate function return true, this will insert the username into the db
if(results==true){
collection.insert({username : req.body.username}, function(err,result){
if (!err) {
db.close();
callback(200);
}
});
}
else{
callback(results);
}
});
}
});
}
});
};
// validating function
UserModel.prototype.validate = function(req,callback) {
var errors=0;
var detail_error;
var username = req.body.username;
// check the username
if(!username || username < this.username_min || username>this.username_max){
errors++;
detail_error +="this is an error";
}
// will execute the callback witin the error
if(errors>0){
callback(detail_error);
}
// if there arent error will return true
else{
callback(true);
}
};
我得到的錯誤是
TypeError: Object #<Object> has no method 'validate'
指的線路:
this.validate(req,function(results){ .......