流星发布异常:在使用 aldeed:tabular 时,在发布过程中没有检查() 所有参数
Meteor publication Exception: Did not check() all arguments during publisher when using aldeed:tabular
我有以下出版物:
Meteor.publish( 'usersadmin', function() {
return Meteor.users.find( {}, { fields: { "emails": 1, "roles": 1, "profile": 1 } } )
});
我使用 aldeed:tabular 在下表中显示出版物:
TabularTables.UsersAdmin = new Tabular.Table({
name: "User List",
collection: Meteor.users,
pub: "usersadmin",
allow: function(userId) {
return Roles.userIsInRole(userId, 'admin');
},
columns: [{
data: "emails",
title: "Email",
render: function(val, type, doc) {
return val[0].address;
}
}, {
data: "roles",
title: "Roles",
render: function(val, type, doc) {
return val[0]._id;
}
}]);
该表显示正常,但在服务器终端中显示以下异常:
Exception from sub usersadmin id 2d7NFjgRXFBZ2s44R Error: Did not check() all arguments during publisher 'usersadmin'
这是什么原因造成的?
您
会收到此错误,因为您需要使用 check(value, pattern)
检查传递给 usersadmin
发布函数的参数。
aldeed:tabular
包中实现的响应式 DataTable 将参数tableName
、ids
和fields
传递给发布函数;这就是引发异常的原因。
根据文档,您需要满足以下要求:
您的职能:
- 必须接受并检查三个参数:表名、ID 和字段
- 必须发布 ids 数组中_id所在的所有文档。
- 必须进行任何必要的安全检查
- 应仅发布字段对象中列出的字段(如果提供了)。
- 还可以发布您的表格所需的其他数据
这应该可以修复错误:
Meteor.publish('usersadmin', function(tableName, ids, fields) {
check(tableName, String);
check(ids, Array);
check(fields, Match.Optional(Object));
return Meteor.users.find({}, {fields: {"emails": 1, "roles": 1, "profile": 1}});
});
相关文章:
- 在提交过程中使用同步确认灯箱提交表格
- 在电子商务结账过程中显示特定于上下文的错误
- Ajax中参数后缺少括号
- Grunt排除在生成过程中插入某些文件
- JavaScript:如何在迭代过程中修改数组中的值
- 如何检查是否存在“;没有到主机的路由”;在流式传输视频的过程中一遍又一遍
- 在asp.net页面中显示javascript执行过程中的加载图标
- 在网格视图的自动刷新过程中,设置内部网格视图文本框的可见性
- ng-show内容在页面加载过程中闪烁,尽管它不是真实的,并且ng-cloak不适用于FF
- 如何在初始化过程中引用同一对象内的对象字段
- Python Javascript哈希库,以确保JSON对象在传输过程中不会损坏
- 如何将SignalR包含在gullow构建过程中
- 如何在剑道网格中直观地识别拖放过程中的放置目标
- 我是否可以在渲染过程中使用三.js合并每一帧中的几何体
- 在拖动过程中释放鼠标时忽略 JavaScript mouseUp 事件
- 流星发布异常:在使用 aldeed:tabular 时,在发布过程中没有检查() 所有参数
- 为什么在参数传递过程中未评估javascript哈希对象
- 根据对象创建过程中的参数,选择对象具有的方法集
- 如何在开发过程中了解javascript方法的参数
- 在javascript提交过程中没有传递URL参数