我开始使用Meteor,我已经从一个咖啡文件中运行了所有内容,但我想整理一下并将一些代码移动到/ public和/ server。但是,当我这样做时,我的收藏是不确定的。我已经移动了很多代码,但是这个集合仍未定义。我删除了自动发布和不安全的软件包。我做错了什么?
/main.coffee
Trips = new Meteor.Collection "trips"
if Meteor.isClient
Meteor.subscribe 'trips'
if Meteor.isServer
Meteor.publish 'trips', -> Trips.find()
Trips.allow
insert: -> true
update: -> true
remove: -> true
/client/trips.coffee
Meteor.startup ->
Template.Trips.all_trips = -> Trips.find()
答案 0 :(得分:2)
您需要Trips
可以访问其他文件,Meteor 0.6.0 introduced variable scoping您在根目录中定义了Trips
,因此它不是全局&你的client/trips.coffee
无法看到它。您可以使用@
:
在/main.coffee
@Trips = new Meteor.Collection "trips"
因此,其他文件(客户端和服务器)都可以访问它。
当您进一步拆分文件时,最终应该有3个文件:
/main.coffee (可由服务器和客户端访问并首先加载)
@Trips = new Meteor.Collection "trips"
<强> /client/trips.coffee 强>
Meteor.subscribe 'trips'
Meteor.startup ->
Template.Trips.all_trips = -> Trips.find()
<强> /server/server.coffee 强>
Meteor.publish 'trips', -> Trips.find()
Trips.allow
insert: -> true
update: -> true
remove: -> true