【发布时间】:2012-02-07 22:18:48
【问题描述】:
出于某种原因,推送到 mongodb 可以使用此设置
// Fixed params
story.title = 'Socketi';
story.lines.push ({ author: 'Khuram', text:'socket data'});
//Capture data from socket into schema
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('slog', function (data) {
console.log(data);
});
});
但是将 mongoose push 语句放在 socket.io 调用中不起作用
像这样:
// Fixed params
story.title = 'Socketi';
//Capture data from socket into schema
io.sockets.on('connection', function (socket) {
socket.emit('news', { hello: 'world' });
socket.on('slog', function (data) {
story.lines.push ({ author: 'Khuram', text:data.my});
});
});
仅供参考:“日志”是指我希望猫鼬更新的事件。 我从客户端接收数据,我想在每次发出此事件时将套接字事件数据推送到 mongodb(这就是为什么我想将它放在 socket.io 调用中)
【问题讨论】:
-
您如何检查
story.lines.push是否有效?这里缺少很多代码。 -
我只是粘贴了一段代码以保持简洁。我确实拥有上面架构的所有代码。我已经在 socket.io 调用之外测试了 story.push 并且数据成功存储到了 MongoDB - 这能回答你的问题吗?
-
您可能在并发方面遇到了问题,但是如果没有看到完整的代码就无法判断。尝试运行您的代码,然后通过 mongo 控制台检查数据库。你在
story上给.save()打电话吗? -
这里是GitHub上完整代码的链接:github.com/eemouk/Storify/blob/master/story.js
标签: node.js mongodb socket.io mongoose