【发布时间】:2017-01-27 23:29:14
【问题描述】:
我有一个类似的代码,我在发送响应时遇到问题。
socket.on('findUserMessages', (userName) => {
io.sockets.connected[socket.id].emit('Checking-message', {
type: 'ss',
text: bot,
user: 'bot'
});
var dupa = db.chat.find({ user: userName }, function(err, docs) {
userName = userName
if (err) throw err;
console.log('load old messages', docs)
})
io.emit('private message', dupa);
})
我的节点控制台输出是这样的
[ { _id: 5888bdd6cef7952e38821f35,
text: 'O rajciu rajciu',
user: 'Adam',
time: 2017-01-25T15:01:42.733Z }]
我知道输出不是 JSON 字符串,如何解决?我试图使用 .toArray() 但没有成功。
这可能是个愚蠢的问题,但我坚持了很长时间。
【问题讨论】:
-
您需要在回调中发出结果。
io.emit('private message', docs); -
我不知道从哪里开始。
userName = userName是做什么的? -
@Aᴍɪʀ 这个“文档”对象不是有效的 JSON 对象,这是主要问题。
-
@PiotrKaliński
docs是一个对象数组。只要它不包含函数,您就可以通过套接字发送它。您要发送的不是docs。将emit移动到console.log之后,并将dupa替换为docs。
标签: javascript json node.js socket.io