我已经开始使用 mongojs 查看 socket.io 和一些 MongoDB。
摘要:客户端不通过 socket.io 向服务器发送数据,因此 mongojs 无需查找任何内容,只返回集合中的第一个文档,我希望它返回 null 或 false,以便我可以采取适当的措施。任何帮助表示赞赏,对 node.js 和 this 来说非常新。
我需要一个登录功能,但是当我单击我登录的链接时,它应该从客户端运行:
<script>
var socket = io.connect('http://localhost:13163');
socket.on('connect', function () {
socket.emit(console.log('Client connected'));
});
socket.on('queryResponse', function (res, err) {
if (res == "[object Object]") {
console.log('EMPTY OBJ SERVER: ' + res + ' ' + err);
}
else{
console.log('IF NOT EXEC' + res[0].email)
}
});
//socket.send('client hello');
//pageload
$(function () {
$('#login').click(function () {
var username = $('#username').val();
var password = $('#password').val();
if (!username || !password) {
event.preventDefault();
console.log('Need data in both fields');
}
else {
event.preventDefault();
socket.emit('querydata', function (username, password) {
console.log("CLIENT: Querying server for data...");
});
}
});
});
</script>
这应该将用户名和密码发送到服务器,然后服务器应该运行:
socket.on('querydata', function (user_username, user_password) {
db.users.find({email: user_username, pass: user_password}, function (err, docs) {
if (err || !docs) {
socket.emit('queryResponse', 'No users found', err);
console.log('if - ' + docs[0].email);
}
else {
socket.emit('queryResponse', docs);
console.log('else - ' + docs[0].email + 'user_password' + user_password + 'user_username' + user_username);
}
});
});
奇怪的是,它只找到集合的第一个文档。我刚刚发现 'user_username' 和 'user_password' 重载是未定义的,这只是我这边的一些迟钝的错误吗?