7

私はしたいと思います:

  • 入力フォームから入力されたデータを取得します。
  • socket.ioを介してデータを送信し、完了したことを示すコンソールログを送信します
  • Expressapp.jsでデータを受信します
  • mongooseを使用してデータをmongodbデータベースに挿入します。

メッセージの送信は理解していますが、データを投稿する方法がわかりません。前もって感謝します

私のapp.jsは次のように設定されています:

//app.js config ...

var socket = io.listen(server);

socket.on('connection', function(socket) {
   console.log('socket.io connected');
});



app.post('/go', function(req, res) {

  socket.on('data', function(data) {
    new Order({
      routeFrom : data.routeFrom,
      routeTo : data.routeTo,
      leaving: data.leaving
    }).save(function(err, docs) {
      if(err) { console.log("error"); }
      res.json(data);
    });
    socket.emit('callback', {done: 'Done'});
  });

});

私のindex.ejsファイル:

  <script src="/socket.io/socket.io.js"></script>

 var socket = io.connect('http://localhost:3000');

$('#send').on('click', function() {
    $.post('/go', {
       socket.emit('data', {
        routeFrom: $('#rf').val(),
        routeTo: $('#rt').val(),
        leaving: $('#l').val()
       });

    });

  socket.on('callback', function(data) {
   console.log(data);
  });

});

4

1 に答える 1

13

まったく必要ありませんPOST

私はクライアント側で行います:

var socket = io.connect('http://localhost:3000');

$('#send').on('click', function(event) {
  event.preventDefault();
  socket.emit('data', {
    routeFrom: $('#rf').val(),
    routeTo: $('#rt').val(),
    leaving: $('#l').val()
  });
});

socket.on('callback', function(data) {
  console.log(data.done);
  // Print the data.data somewhere...
});

そしてサーバー側では:

//app.js config ...
var socket = io.listen(server);

socket.on('connection', function(socket) {
  console.log('socket.io connected');
});

socket.on('data', function(data) {
  new Order({
    routeFrom : data.routeFrom,
    routeTo : data.routeTo,
    leaving: data.leaving
  }).save(function(err, docs) {
    if(err) { return console.log("error"); }
    socket.emit('callback', {done: 'Done', data: data});
  });
});
于 2012-12-10T15:39:28.570 に答える