Я начал искать socket.io и некоторые MongoDB с mongojs.socket.io возвращает [объект Object] из запроса mongojs
Реферат: Клиент не отправляет данные на сервер через socket.io, поэтому mongojs не имеет ничего, что нужно искать, и просто возвращает первый документ в коллекции, я бы хотел, чтобы он возвращал значение null или false, поэтому я могу принять соответствующие действия. Любая помощь оценена, очень новая для node.js и этого.
Мне нужен журнал в функции, но когда я нажимаю ссылку я сделал, чтобы войти, это должно работать с клиентом:
<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' не определены, это просто некоторая ошибка с моей стороны?
Спасибо, что помогли на сервере server.js, все еще не имея возможности вернуть данные клиенту. Мне нужно проверить, есть ли в документе правильные данные, и если есть перенаправление и задание сеанса, но если я попытаюсь использовать JSON.parse (docs), я получу эту ошибку: Uncaught SyntaxError: Неожиданный токен u localhost: 39 (анонимная функция) локальный: 39 EventEmitter.emit socket.io.js: 633 SocketNamespace.onPacket socket.io.js: 2248 Socket.onPacket socket.io.js: 1930 Transport.onPacket socket.io.js : 1332 Transport.onData socket.io.js: 1303 stateChange – mackwerk
обновил ответ, попробуйте обновленную часть и дайте мне знать, как это происходит. –
Ну, я никогда не получаю ошибку, потому что он всегда возвращает что-то, например, если я ввожу имя пользователя: asd и пароль: asd это то, что он возвращает: 'xhr-polling writing 5 ::: {" name ":" queryResponse ", "args": [{"email": "asd", "pass": "asd"}]} ' – mackwerk