javascript - Socket.io 使用 mongoDB 文档发出 [object Object]

标签 javascript mongodb socket.io

首先祝大家感恩节快乐!我希望每个人都喜欢他们所吃的所有食物!我知道我会的..

任何人,

我正在尝试查询我的 mongoDB 集合以获取已插入的最新文档并将其发送给客户端。然而,网页上显示的唯一内容是[object Object],而不是文档中存储的数据。当我 console.log 发送的数据时,它显示以下内容:

Object {newData: Array[1]}
newData: Array[1]
0: Object_id: "564f8b8cfa74e4daab1543ca"
ambientAtTrackTempSensor: "-"
date: "10/09/2015"
dewPoint: "56"
humidity: "63.0"
pressure: "29.258"
solar: "397"
temp: "80.1"
time: "17:00"
trackTemp: "-"
windBearing: "222"
windGust: "7.0"
windSpeed: "6.0"
__proto__: Object
length: 1
__proto__: Array[0]
__proto__: Object

所以数据就在那里,我想我只是没有正确访问它。

这是我的代码:

服务器:

var io = require('socket.io').listen(server);

MongoClient.connect(dbUrl, function(err, db) {
  if (err) {
    console.log('Failed to connect to mongoDB database.');
  } else {
    console.log('Succesfully connected to mongoDB database.');
  };

io.sockets.on('connection', function(socket) {
// send data to client
  var collection = db.collection('track_weather');
  collection.find().sort({_id:-1}).limit(1).toArray(function(err, docs) {
    console.log(docs);
    socket.emit('message', {'newData': docs});
  });
 });
});

客户:

<body>

<script>
  var socket = io.connect();

  socket.on('message', function(data) {
    $('#newData').text(data.newData);
    console.log(data);
  });
</script>

<div id="newData"></div>

</body>

任何帮助将不胜感激!我对这一切都很陌生:)

最佳答案

您必须对对象进行字符串化才能显示它,否则 javascript 将仅显示类型(此处为 [object Object])。

$('#newData').text(JSON.stringify(data.newData));

关于javascript - Socket.io 使用 mongoDB 文档发出 [object Object],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33923019/

相关文章:

javascript - 表单验证实践

javascript - 是否有一个node.js模块可以产生1/f(粉红噪声)波动?

node.js - $所有 mongodb Node js

node.js - 在 Mongoose 中填充 + 聚合

node.js - Socket.io 不会在 IE8/9 中向 NodeJS 发送断开连接事件

javascript - Fancybox错误自动重新加载

javascript - 无法在 Firefox/Opera 中设置焦点

c++ - 使用 CMake 生成 Visual Studio 2017 项目

java - websocket 上可能有不同的语言吗?

html - socket.io 客户端到客户端消息传递