私は問題があります。
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 イベントを介してデータを送信します。ご覧のとおり、データは同じです。