Vue.js Meteor/VueJS发布特定项目
我正在尝试发布与当前事件关联的用户 但我想我还没有完全理解meteor和vuejs之间的出版和订阅原则 服务器端:Vue.js Meteor/VueJS发布特定项目,vue.js,meteor,Vue.js,Meteor,我正在尝试发布与当前事件关联的用户 但我想我还没有完全理解meteor和vuejs之间的出版和订阅原则 服务器端: import { Meteor } from 'meteor/meteor'; import Events from './collections'; import moment from "moment"; const currentWeek = moment().week(); const currentYear = moment().year(); const curren
import { Meteor } from 'meteor/meteor';
import Events from './collections';
import moment from "moment";
const currentWeek = moment().week();
const currentYear = moment().year();
const currentEvent = Events.findOne({ week: currentWeek, year: currentYear })
Meteor.publish('currentUser', function () {
return Meteor.users.findOne({ _id: currentEvent.user_id } );
});
客户端:
export default {
meteor: {
$subscribe: {
currentUser: [],
},
currentUser() {
return Events.findOne()
}
}
}
客户端返回集合的第一个用户,而不是作为发布参数给定的事件的预期用户
你能告诉我哪里错了吗?我很难记录我的良好实践这里有两个问题:
首先,出版物旨在返回光标(使用.find
),而不是单个文档(使用.findOne
)
其次,服务器上的当前代码仅使用启动/导入模块时的时间,因为代码在全局范围内,不会重新执行。因此,如果您的服务器运行时间超过一周/年,它将不会返回准确的文档集
要返回与查询匹配的所有文档,请使用.find
。为了始终获得当前时刻,可以将其包装在函数中。代码可能如下所示:
从'Meteor/Meteor'导入{Meteor};
从“/collections”导入事件;
从“时刻”中导入时刻;
常量getCurrentEvent=()=>{
const currentWeek=力矩().week();
const currentYear=力矩().year();
返回Events.findOne({week:currentWeek,year:currentYear});
}
Meteor.publish('currentUser',函数(){
const currentEvent=getCurrentEvent()
返回Meteor.users.find({u-id:currentEvent.user\u-id});
});
进一步阅读:
你从哪里获得
currentWeek
和currentYear
?我已经更新了我的代码你是否检查了currentEvent.user\u id
?@ghybs是的,我得到了当前事件的id,请回答,我很难理解副脚本和出版的原则,但我终于开始看得更清楚了。Thx的链接!