首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >控制台中可用的流星对象,但“抛出”无法读取未定义的属性findOne

控制台中可用的流星对象,但“抛出”无法读取未定义的属性findOne
EN

Stack Overflow用户
提问于 2016-05-22 22:59:57
回答 1查看 462关注 0票数 1

我刚开始接触Meteor,在这个问题上已经被困了好几个小时了。

我在导入/lib/sessions.js的文件'sessions.js‘中创建了一个集合

代码语言:javascript
复制
import { Meteor } from 'meteor/meteor';
import { Mongo } from 'meteor/mongo';

Sessions = new Mongo.Collection('sessions');

我使用浏览器控制台在数据库中创建了一些文档。然后,我希望使用模板助手返回一个文档:

代码语言:javascript
复制
import { Template } from 'meteor/templating';
import { Sessions } from '../../../../imports/lib/sessions.js';

Template.CarCamping.helpers({
    test: function() {
        return Sessions.findOne({name: 'David'});
    }
});

这会引发以下错误:

代码语言:javascript
复制
debug.js:41Exception in template helper: TypeError: Cannot read property 'findOne' of undefined
    at Object.test (http://localhost:3000/app/app.js?hash=e301d24dd47ccd4c73ae01a856896ad67acaaca0:77:32)
    at http://localhost:3000/packages/blaze.js?hash=ef41aed769a8945fc99ac4954e8c9ec157a88cea:2994:16
    at http://localhost:3000/packages/blaze.js?hash=ef41aed769a8945fc99ac4954e8c9ec157a88cea:1653:16
    at http://localhost:3000/packages/blaze.js?hash=ef41aed769a8945fc99ac4954e8c9ec157a88cea:3046:66
    at Function.Template._withTemplateInstanceFunc (http://localhost:3000/packages/blaze.js?hash=ef41aed769a8945fc99ac4954e8c9ec157a88cea:3687:12)
    at http://localhost:3000/packages/blaze.js?hash=ef41aed769a8945fc99ac4954e8c9ec157a88cea:3045:27
    at Spacebars.call (http://localhost:3000/packages/spacebars.js?hash=65db8b6a8e3fca189b416de702967b1cb83d57d5:172:18)
    at Spacebars.mustacheImpl (http://localhost:3000/packages/spacebars.js?hash=65db8b6a8e3fca189b416de702967b1cb83d57d5:106:25)
    at Object.Spacebars.mustache (http://localhost:3000/packages/spacebars.js?hash=65db8b6a8e3fca189b416de702967b1cb83d57d5:110:39)
    at ._render (http://localhost:3000/app/app.js?hash=e301d24dd47ccd4c73ae01a856896ad67acaaca0:30:22)

我已经尝试过的:

  • 确保自动备份是打开的,所以在订阅或发布数据方面没有问题。
  • 确保创建集合不只是在服务器上完成。如果我正确理解,那么客户端和服务器都可以访问“imports/lib/sessions.js”路径。
  • html包含具有模板名称的模板标记。

问题是:当我使用'Sessions.findOne({name:‘David’})从控制台查询db时,它确实给出了预期的结果。但从代码本身看,它不起作用。

帮助是非常感谢的!提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-05-23 05:48:00

您并不是从imports/lib/sessions.js导出imports/lib/sessions.js,所以当您进入import时,不会定义Sessions。试试这个:

代码语言:javascript
复制
import { Mongo } from 'meteor/mongo';

export const Sessions = new Mongo.Collection('sessions');

您可以在Todos集合这里中看到类似的模式。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37380514

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档