流星:发布/订阅问题

Meteor: Publish / Subscribe issue

我只是删除了 autopublish 和不安全的包,所以根据我的理解,我必须定义我的 mongodb,在服务器端发布它们,并在客户端仅订阅我想访问客户端的那些数据库。所以我做了

服务器

Users = new Mongo.Collection('users');

Meteor.publish('users', function(){
return Users.find();
});

客户

Meteor.subscribe('users');

我还重新启动了我的数据库,所以我从 mongo cmd 行中删除了角色和用户数据库。 db.users.drop() 等等

然而,我返回

W20160726-11:19:13.986(8)? (STDERR)
W20160726-11:19:13.990(8)? (STDERR) C:\Users\Farhan\AppData\Local\.meteor\packages\meteor-tool.3.5_1\mt-os.windows.x86_32\dev_bundle\server-lib\node_modules\fibers\future.js:280
W20160726-11:19:13.993(8)? (STDERR)                                             throw(ex);
W20160726-11:19:13.996(8)? (STDERR)                                                   ^
W20160726-11:19:13.998(8)? (STDERR) Error: There is already a collection named "users"
W20160726-11:19:14.001(8)? (STDERR)     at new Mongo.Collection (packages/mongo/collection.js:244:15)
W20160726-11:19:14.004(8)? (STDERR)     at meteorInstall.server.main.js (server/main.js:2:9)
W20160726-11:19:14.007(8)? (STDERR)     at fileEvaluate (packages/modules-runtime/.npm/package/node_modules/install/install.js:153:1)
W20160726-11:19:14.012(8)? (STDERR)     at require (packages/modules-runtime/.npm/package/node_modules/install/install.js:82:1)
W20160726-11:19:14.015(8)? (STDERR)     at C:\Users\Farhan\csgofiyav1\.meteor\local\build\programs\server\app\app.js:100:1
W20160726-11:19:14.019(8)? (STDERR)     at C:\Users\Farhan\csgofiyav1\.meteor\local\build\programs\server\boot.js:297:10
W20160726-11:19:14.022(8)? (STDERR)     at Array.forEach (native)
W20160726-11:19:14.025(8)? (STDERR)     at Function._.each._.forEach

(C:\Users\Farhan\AppData\Local.meteor\packages\meteor-tool.3.5_1\mt-os.windows.x86_32\dev_bundle\server-lib\node_modules\underscore\underscore.js:79:11) W20160726-11:19:14.029(8)? (STDERR) at C:\Users\Farhan\csgofiyav1.meteor\local\build\programs\server\boot.js:133:5

然而,在那之后,我删除了 users = new Mongo... & roles 并且它起作用了。没有错误返回。我很困惑,现在想知道应用程序的安全性是否受到威胁...

任何防止这种情况发生的澄清和建议都将是救命稻草!

Users 已经是内置集合。不需要发布或订阅用户,因为它已经由框架完成。

有时,需要自定义用户集合的默认发布行为。 Meteor guide 对此进行了详细解释。