2016-11-28 45 views
0

我想从html发送简单消息到node.js控制台。但数量的工作,字符串和任何字符不工作, 显示信息是 消息:NaN的socket io不解析字符串和任何字符

var app = require('express')(); 
var http = require('http').Server(app); 
var io = require('socket.io')(http); 
app.get('/', function(req, res){ 
    res.sendFile('sample.html', { 
    root:'/home/deneebo/Documents/apidevelopment/nodejs'}); 
}); 
io.on('connection', function(socket) { 
    socket.on('chat message', function(msg) { 
     console.log('message: ', + msg);}); 
}); 
http.listen(3000, function(){ 
    console.log('listening on *:3000'); 
}); 

HTML代码如下

<!doctype html> 
<html> 
    <head> 
    <title>Socket.IO chat</title> 

    </head> 
    <body> 

    <ul id="messages"></ul> 
    <form action=""> 
     <input id="m" autocomplete="off" /><button>Send</button> 
    </form> 
<script src="/socket.io/socket.io.js"></script> 
<script src="http://code.jquery.com/jquery-1.11.1.js"></script> 
<script> 
    var socket = io(); 
    $('form').submit(function(){ 
    socket.emit('chat message', $('#m').val()); 
    alert($('#m').val()); 
    $('#m').val(''); 

    return false; 
    }); 
</script> 
    </body> 

</html> 
+0

请添加您的html代码,发送文本到node.js控制台的脚本部分? –

+0

感谢您的快速评论,这是我的html代码 –

+0

我没有改变html中的任何东西...工作正常 – Adiii

回答

1

我想你的代码,我的本地工作做好

var app = require('express')(); 
var http = require('http').Server(app); 

var io = require('socket.io')(http); 

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

    res.sendfile('stack.html', {root: __dirname }); 
}); 
io.on('connection', function(socket) { 
    socket.on('chat message', function(msg) { 
     console.log('message: ', msg);}); //Remove + from here 
}); 
http.listen(3000, function(){ 
    console.log('listening on *:3000'); 
}); 

enter image description here

+0

好吧。但这段代码对我不起作用,你能帮我吗? –

+0

是的,我在这里还有什么问题,你的代码更新我 – Adiii

+0

数字也工作,但字符串或字符的意思是返回'消息:NaN' –