2017-10-16 7 views
0

私は比較的新しいNode.jsです。この時点までに、socket.emitとsocket.onで情報を細かく渡しています。私たちは、ユーザーが送信したときに電子メールの価値を出してログインページを非表示にする新しいフォームを持っています。データは放出されていますが、何らかの理由でemitの関数部分に入ってログインページを隠すことはありません。 if(data)セグメントに到達していません。それは機能(データ)の内側に行かない理由Node.jsソケットは発光していますが、関数呼び出しには入りません

$agentForm.submit(function(e){ 
    e.preventDefault(); 
    if(validateEmail($agentEmail.val()) && validatePW($pw.val())){ 
     socket.emit('new agent', $agentEmail.val(), function(data){ 
      if(data){ 
       $loginPage.hide(); 
      } 
     }); 
    } else{ 
     return; 
    } 
}); 

値は、サーバー上でとても不確か放出されると、キャッチされています。より多くの情報が必要な場合は、私が提供することができます。あなたが提供できるどんな助けもありがとうございます。ありがとう!

答えて

0

サーバーで接続が受信されていますがコールバック関数を呼び出していますか? socket.ioを使用しているようですが、ここではスニペットがあり、クライアントが実行され、接続が確立されていないか、コールバック関数が呼び出されていない場合、レスポンスハンドラには入りません。

server.js

const io = require('socket.io')({ 
    path: '/test', 
    serveClient: false 
}); 

io.attach(3000, { 
    pingInterval: 10000, 
    pingTimeout: 5000, 
    cookie: false 
}); 

io.on('connection', function (socket) { 
    console.log('client connected') 
    socket.on('foo', function (data, callback) { 
    console.log(data); 
    callback('received ' + data); // IMPORTANT must invoke callback 
    }); 
}); 

client.js

const io = require('socket.io-client'); 

const socket = io('http://localhost:3000', { 
    path: '/test' 
}); 

socket.emit('foo', 'bar', function (response) { 
    console.log("response:") 
    console.log(response); 
}); 
+0

うわー、それはそれは、コード行方不明は1行だけでした。本当にありがとうございました。以前はそこに実際にあったのですが、テスト中に削除されました。 –

関連する問題