Javascript Don';无法从js对象发送数据

Javascript Don';无法从js对象发送数据,javascript,node.js,mongodb,socket.io,google-chrome-devtools,Javascript,Node.js,Mongodb,Socket.io,Google Chrome Devtools,我有个问题 从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 = ($(

我有个问题

从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发送数据。如您所见,数据是相同的


嗯。。。我在考虑两件事:

a) 尝试逐个属性删除属性。这样做你会发现哪一个是有问题的。我对对话特别感兴趣

b) 将*viewer\u user\u id:更改为*id*

viewer_user_id: parseInt(to_id)

我想我可以发布我的建议作为答案,即使实际的bug仍然不清楚


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

如果您在脚本中发送它之前执行了
console.log(compostata)
,与从控制台发送它相比,它的格式是否正确?Node.JS代码中接收到了哪些数据?@Alexander Node.JS应用程序中的数据,这两种情况都是一样的。全部检查。甚至是对象的类型。但是,通过基于web的应用程序发送数据后,数据不会写入数据库。@RomanGorbatko听起来问题出在将数据写入数据库的函数中。那么,请将代码发布到您正在执行的位置好吗?您是否尝试过在该函数中使用log语句来查看那里的所有内容是否也正确?哦,好吧,如果没有其他方法可以工作,并且这是一个与数据库相关的问题,您可以尝试切换到。。不确定它是否有用,但谁知道呢?a)
{a:123}
-不起作用。b) 已经试过了。它不起作用。