I've code for checking nick aviability. Records are added to database, but insert callback or find queries aren't working at all.
mdb.find= function (id,collection,multi,action, sorting){
if(!multi){collection.findOne(id, function(err, item) {
if (err) {
error = err;
console.error('FIND ERROR');
return false;
}
if(item){
console.log('FOUND');
return item;
}
else {
console.log('EMPTY');
return false;}
});
}
(..)
if(!mdb.find({nick : data.nick},collection,false)){
console.log('nick aviable: '+data.nick);
collection.insert({nick: data.nick},{safe:true}, function(err, result) {
if (err) {
socket.emit('error',{msg: error});
console.error ('Oops!');
throw err;
}
console.log(result.nick)
console.log('SUCCESS!!!!')
nick[socket.id] = result.nick;
socket.emit('nick',{aviable: true});
});
/*________________________________________________________*/
collection.findOne({nick: data.nick}, function(err, item) {
if (err) {
error = err;
console.error('ERROR!'+err);
// return false;
}
if(item){
console.log('SUCCESS!!!!')
nick[socket.id] = item.nick;
socket.emit('nick',{aviable: true });
}
else {
socket.emit('error',{errmsg: 'nick not inserted'});
console.error('empty');
}
});
only console.log('nick aviable: '+data.nick); from those logs is performed
When I'm searching inserted nick manually (via mongo.exe), result is shown properly.
Am I missing something here?