Javascript 允许路由访问Meteor收集的数据

Javascript 允许路由访问Meteor收集的数据,javascript,meteor,routes,pdfkit,Javascript,Meteor,Routes,Pdfkit,我正在使用meteor pdfkit使用路由创建PDF。这是我的当前代码,允许我在PDF上显示我的日历ID Router.route('/calendars/:_id/getPDF', function() { var currentCalendar = this.params._id; var doc = new PDFDocument({size: 'A4', margin: 50}); doc.fontSize(12); doc.text(curr

我正在使用meteor pdfkit使用路由创建PDF。这是我的当前代码,允许我在PDF上显示我的
日历
ID

 Router.route('/calendars/:_id/getPDF', function() {
     var currentCalendar = this.params._id;
     var doc = new PDFDocument({size: 'A4', margin: 50});
     doc.fontSize(12);
     doc.text(currentCalendar, 10, 30, {align: 'center', width: 200});
     this.response.writeHead(200, {
         'Content-type': 'application/pdf',
         'Content-Disposition': "attachment; filename=test.pdf"
     });
     this.response.end( doc.outputSync() );
 }, {where: 'server'});
但是,当我尝试包含日历集合中的其他信息时,数据返回为未定义或创建错误。例如,如果我尝试调用
curentCalendar.name

 Router.route('/calendars/:_id/getPDF', function() {
     var currentCalendar = this.params._id;
     var doc = new PDFDocument({size: 'A4', margin: 50});
     doc.fontSize(12);
     doc.text(currentCalendar.name, 10, 30, {align: 'center', width: 200});
     this.response.writeHead(200, {
         'Content-type': 'application/pdf',
         'Content-Disposition': "attachment; filename=test.pdf"
     });
     this.response.end( doc.outputSync() );
 }, {where: 'server'});

我假设这是因为路由无法访问集合中的信息。如何允许路由访问日历集合中的信息?

currentCalendar.name
未定义,因为您正在字符串
currentCalendar
上查找属性
name
,该属性只不过是URL中提供的id值。因此,它只知道一个数字

您需要做的是创建一些包含日历信息的数组,即:

global.calendars=[{name:“假日”,数据:…},{name:“测试”,数据:…}]

然后,在路线中,您可以根据索引获取信息,如下所示:

doc.text(日历[currentCalendar].name,10,30,{align:'center',width:200})


因为现在
calendars[currentCalendar].name
已定义

currentCalendar.name
未定义,因为您正在查找字符串
currentCalendar
上的属性
name
,该属性只不过是URL中提供的id值。因此,它只知道一个数字

您需要做的是创建一些包含日历信息的数组,即:

global.calendars=[{name:“假日”,数据:…},{name:“测试”,数据:…}]

然后,在路线中,您可以根据索引获取信息,如下所示:

doc.text(日历[currentCalendar].name,10,30,{align:'center',width:200})


因为现在
calendars[currentCalendar].name
已定义

currentCalendar.name
未定义,因为您正在查找字符串
currentCalendar
上的属性
name
,该属性只不过是URL中提供的id值。因此,它只知道一个数字

您需要做的是创建一些包含日历信息的数组,即:

global.calendars=[{name:“假日”,数据:…},{name:“测试”,数据:…}]

然后,在路线中,您可以根据索引获取信息,如下所示:

doc.text(日历[currentCalendar].name,10,30,{align:'center',width:200})


因为现在
calendars[currentCalendar].name
已定义

currentCalendar.name
未定义,因为您正在查找字符串
currentCalendar
上的属性
name
,该属性只不过是URL中提供的id值。因此,它只知道一个数字

您需要做的是创建一些包含日历信息的数组,即:

global.calendars=[{name:“假日”,数据:…},{name:“测试”,数据:…}]

然后,在路线中,您可以根据索引获取信息,如下所示:

doc.text(日历[currentCalendar].name,10,30,{align:'center',width:200})


因为现在
calendars[currentCalendar].name在您的代码中定义了,
currentCalendar
被设置为一个id。我想您要写:

var currentCalendar = Calendars.findOnw(this.params._id);

现在,
currentCalendar
将是一个具有属性的文档,例如,
currentCalendar.name
在您的代码中,
currentCalendar
被设置为一个id。我想您要写:

var currentCalendar = Calendars.findOnw(this.params._id);

现在,
currentCalendar
将是一个具有属性的文档,例如,
currentCalendar.name
在您的代码中,
currentCalendar
被设置为一个id。我想您要写:

var currentCalendar = Calendars.findOnw(this.params._id);

现在,
currentCalendar
将是一个具有属性的文档,例如,
currentCalendar.name
在您的代码中,
currentCalendar
被设置为一个id。我想您要写:

var currentCalendar = Calendars.findOnw(this.params._id);

现在,
currentCalendar
将是一个具有属性的文档,例如,
currentCalendar.name

我假设从现有的日历集合而不是静态数组中包含数据是相当容易的?JeremyE David的回答说明了如何从现有集合中执行此操作。谢谢Carl!非常感谢您的帮助。我认为从现有日历集合而不是静态数组中包含数据是相当容易的吗?@JeremyE David的回答说明了如何从现有集合中执行此操作。谢谢Carl!非常感谢您的帮助。我认为从现有日历集合而不是静态数组中包含数据是相当容易的吗?@JeremyE David的回答说明了如何从现有集合中执行此操作。谢谢Carl!非常感谢您的帮助。我认为从现有日历集合而不是静态数组中包含数据是相当容易的吗?@JeremyE David的回答说明了如何从现有集合中执行此操作。谢谢Carl!谢谢你的帮助,很简单。我喜欢它。谢谢大卫,很简单。我喜欢它。谢谢大卫,很简单。我喜欢它。谢谢大卫,很简单。我喜欢它。谢谢你,大卫。