我刚开始接触Meteor,在这个问题上已经被困了好几个小时了。
我在导入/lib/sessions.js的文件'sessions.js‘中创建了一个集合
import { Meteor } from 'meteor/meteor';
import { Mongo } from 'meteor/mongo';
Sessions = new Mongo.Collection('sessions');我使用浏览器控制台在数据库中创建了一些文档。然后,我希望使用模板助手返回一个文档:
import { Template } from 'meteor/templating';
import { Sessions } from '../../../../imports/lib/sessions.js';
Template.CarCamping.helpers({
test: function() {
return Sessions.findOne({name: 'David'});
}
});这会引发以下错误:
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)我已经尝试过的:
问题是:当我使用'Sessions.findOne({name:‘David’})从控制台查询db时,它确实给出了预期的结果。但从代码本身看,它不起作用。
帮助是非常感谢的!提前谢谢。
发布于 2016-05-23 05:48:00
您并不是从imports/lib/sessions.js导出imports/lib/sessions.js,所以当您进入import时,不会定义Sessions。试试这个:
import { Mongo } from 'meteor/mongo';
export const Sessions = new Mongo.Collection('sessions');您可以在Todos集合这里中看到类似的模式。
https://stackoverflow.com/questions/37380514
复制相似问题