2

私は問題があります。

Chrome コンソールから送信します。仕事。

var composeData = {viewer_user_id: 37247, subject: '321', message: '32131', dialog_id: null};
Node.socket.emit('composeMessage', composeData);

いくつかの .js ファイルから送信します。仕事しないでください。

    composeMessage: function()
    {
            var dialog_id = ($('#dialog_id').val() == '') ? null : $('#dialog_id').val();
            var to_id = $('#to_id').val();

            if (to_id)
            {
                    var composeData = {viewer_user_id: to_id, subject: $('#subject').val(), message: $('#message').val(), dialog_id: dialog_id};
                    Node.socket.emit('composeMessage', composeData);
            } else
            {
                    $('.messages').notification('empty addressee data', 'error', uniqueid(6));
            }
    }

問題は、データが MongoDB に書き込まれることです。最初のケースではすべて問題ありませんが、もう 1 つのケースでは何も起こりません。エラーもありません。

onClick イベントが他の目に見えないデータのオブジェクトに追加されているように感じます。

Node.js アプリ

index.js:

socket.on('composeMessage', function(clientData) {
    console.log(arguments); // OK!
    IM.testInsert(clientData);
});

IM.js:

testInsert: function(clientData) {
    console.log(clientData); // OK!
    mongo_db.collection('test').insert(clientData, function() {
        console.log(arguments); // Not Working if send data from JS file (client), but work if send data from chrome dev-tool
    });
}

それは WebSocket を見渡しました。最初のケース (1 行目) では Chrome Dev-tools を介してデータを送信し、2 番目のケース (3 行目) では onClick イベントを介してデータを送信します。ご覧のとおり、データは同じです。

ここに画像の説明を入力

4

2 に答える 2

1

うーん...私は2つのことを考えています:

a) プロパティごとに削除してみてください。これを行うと、どちらが問題であるかがわかります。特に *dialog_id* に興味があります

b) *viewer_user_id: to_id* を

viewer_user_id: parseInt(to_id)
于 2013-08-19T10:18:19.837 に答える