2016-04-09 3 views
0

Я просто пытаюсь сделать очень основное приложение чата с socket.io и узлом. Я не вижу, чтобы что-то печаталось на моем экране и не могло найти никаких ошибок. Цените помощь!Основное приложение чата с socket/node/express - ничего не распечатывается

Спасибо.

app.js

var express = require('express'); 
var app = express(); 
var server = require('http').createServer(app); 
var io = require('socket.io').listen(server); 

server.listen(3000); 
console.log('Server running...'); 

app.get('/', function(req, res){ 

    res.sendFile(__dirname + '/index.html'); 

}); 

io.sockets.on('connection', function(socket){ 
    socket.on('send-message', function(data){ 
     io.sockets.emit('new message', data); 
    }); 
}); 

index.html

<html> 
<title>Chat Test</title> 

<style> #chat{ 
height: 500px; 
} 
</style> 
<head> 
<body> 

<div id = "chat"></div> 

<form id = "send-message"> 
    <input size = "35" id = "message"></input> 
    <input type = "submit"></input> 
    </form> 

    <script src ="https://code.jquery.com/jquery-latest.min.js"></script> 
    <script src ="/socket.io/socket.io.js"></script> 

    <script> 

    JQuery(function($){ 

     var socket = io.connect(); 

     var $messageForm = $('#send-message'); 
     var $messageBox = $('#message'); 
     var $chat = $('#chat'); 

     $messageForm.submit(function(e){ 

     e.preventDefault(); 
     socket.emit('send-message', $messageBox.val()); 
     $messageBox.val(''); 

     }); 

     socket.on('new message', function(data){ 
     $chat.append(data + "<br/>"); 
     }); 
    }); 

    </script> 
</body> 
</head> 
</html> 

ответ

2

При использовании JQuery, вы должны его jQuery, заклинание не JQuery или вы могли бы просто использовать встроенный псевдоним $.

Это должно было показать ошибку в консоли отладки браузера, которую вы должны научиться искать, чтобы увидеть свои собственные ошибки.

jQuery(function($){ 

    var socket = io.connect(); 

    var $messageForm = $('#send-message'); 
    var $messageBox = $('#message'); 
    var $chat = $('#chat'); 

    $messageForm.submit(function(e){ 

     e.preventDefault(); 
     socket.emit('send-message', $messageBox.val()); 
     $messageBox.val(''); 

    }); 

    socket.on('new message', function(data){ 
     $chat.append(data + "<br/>"); 
    }); 
}); 

После фиксации этого и затем запустить свой код и доступ к http://localhost:3000, ваше приложение отлично работает для меня. Все, что представлено в форме, передается всем подключенным клиентам.

+0

Спасибо, я должен был знать об использовании инструментов для разработчиков. Я просто привык к компилированным языкам, которые сразу показывают вам ошибку. Я действительно ценю твою помощь. – user2411290

+0

@ user2411290 - Javascript отличается от скомпилированных языков, поэтому вам нужно изменить свои привычки. Во время разработки/тестирования я всегда смотрю в консоли отладки (как на клиенте, так и на сервере), даже когда вещи, как правило, работают, потому что это одно место, где вы можете видеть, что что-то не так, как должно быть, и нужно исследовать. И, конечно, в любое время что-то не работает должным образом, это первое, что нужно искать. – jfriend00

Смежные вопросы