使用node.js + socket.io + express / ejs将数据从客户端传递到服务器

时间:2014-03-04 23:57:13

标签: node.js heroku express socket.io ejs

我正在试图弄清楚如何从node.js + socket.io app的前端访问数据。使用“heroku logs --tail”(实时日志记录),在输入内容并点击提交后,我得到了即时响应:

debug: xhr-polling received data packet 5:::{"name":"data","args":[{"hash":"<whatever I put in the input"}]}

但是我无法访问它来记录它。下面的console.log行从未执行过。

后端服务器继承人.js

app.get('/', function(req, res){
  res.render('index.ejs', {
  layout:false,
  locals: {
    someVariable: "blah"
  }
});

// Get Form Data
io.sockets.on('data', function(data) {
  console.log("heres the hash " + data.hash);
});

这是我的前端

<form>
        <span class="label">#</span><input type="text" name="hashtag" id="hashtag" placeholder="hashtag">
        <input type="submit" id="submit" value="Roll em in!">
</form>

<script>
var socket = io.connect();
$('#submit').on('click', function(event) {
  event.preventDefault();
  alert('clicked!');
  socket.emit('data', {
    hash: $('#hashtag').val()
  });
});
</script>

1 个答案:

答案 0 :(得分:0)

这样做怎么样:

io.sockets.on('connection', function(socket) {
  socket.on('data', function(data){
    console.log("heres the hash " + data.hash);
    });
});