javascript - Meteor 中未捕获的类型错误

标签 javascript node.js mongodb undefined meteor

我有这个代码:

Meteor.subscribe('practices');

Session.set('practice', 'Practice 1');

Template.laps_t.laps = function () {
  var obj = Practices.findOne({name: Session.get('practice')});
  return obj.lap_n;
};

我收到错误:未捕获类型错误:无法读取未定义的属性“lap_n”

我知道lap_n实际上是obj的一个属性。

我没有使用自动订阅。有什么想法吗?

编辑:

已解决。谢谢大家。

if(obj){ return obj.lap_n } 正如你所说,成功了。

最佳答案

您应该始终检查模板内是否存在对象。其工作原理是,模板将在页面加载时立即执行,甚至可能在订阅从服务器检索 mongo 数据之前执行,因此在这种情况下,您的 obj 将是未定义的,并且不会具有您期望的属性(property)。但由于模板是 react 性的,一旦数据可用,您的 Practices.findOne 调用将被重新评估并重新执行模板。然后它就会起作用。

关于javascript - Meteor 中未捕获的类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14195802/

相关文章:

javascript - 低db : queries are synchronous or asynchronous?

javascript - Vue-test-utils:在单个测试中多次使用 $nextTick

javascript - 捕获被拒绝的 Promise 后出现 UnhandledPromiseRejectionWarning

javascript - 我的开关无法识别我之前定义的变量

mongodb - 使用 -d 标志时 mongorestore 期望什么样的文件或目录?

node.js - NodeJS 带有 byId() 的额外字段;

javascript - 使用 JavaScript 上传文件 - 如何获得更频繁的 onprogress 事件

javascript - 解析嵌套 JSON 并插入带有值的列表项

javascript - require() 在运行时但只运行一次。可以吗?

使用点表示法的 Mongodb 查询速度慢