我有一个代码,我发送响应有问题。
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()但没有成功。
这可能是一个愚蠢的问题,但我坚持了很久。
答案 0 :(得分:-1)
在发出结果之前将结果转换为json。尝试发出JSON.stringify(dupa)
。
修改强>
您的输出实际上已经是JSON(JSON数组),因此如果您只想在客户端获取JSON字符串,请在接收到emit事件时将输出转换为字符串(JSON.strigify(result)
在客户端)。