不要从js对象发送数据

我有个问题。

从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,第一种情况 – 一切正常,另一个 – 没有任何反应,甚至没有错误。

人们会感觉到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开发工具发送数据,在第二种情况下(第3行)通过onClick事件发送数据。 正如你所看到的,数据是相同的。

在这里输入图像描述

我想我可以张贴我的build议作为答案,即使实际的错误仍然不清楚。

这似乎是一个Mongoskin相关的问题,切换到mongoose解决了这个问题。

嗯…我在想两件事情:

a)尝试通过财产清除财产。 这样做,你会发现哪一个是有问题的。 我特别对* dialog_id *感兴趣

b)将* viewer_user_id:to_id *更改为

 viewer_user_id: parseInt(to_id)