gpt4 book ai didi

javascript - 通过 Meteor Iron Router 获取 Json/Collection 的最简单方法

转载 作者:行者123 更新时间:2023-11-30 16:49:32 25 4
gpt4 key购买 nike

例如,我正在创建一组路线

/ - 应该呈现主页模板

/items - 项目页面模板

/items/weeARXpqqTFQRg275 - 应该使用给定的 _id 从 MongoDB 返回项目

这是我要实现的目标的示例

Router.route('items/:_id', function () {
var item = return myItems.find(:_id);
this.render(item);
});

[更新 - 已解决]通过在服务器端使用 Router.map 而不是 Router.route

解决了这个问题
Router.map(function () {
this.route('post', {
path: 'items/:_id',
where: 'server',
action: function(){
var id = this.params._id;
var json = myItems.findOne({_id: id});
this.response.setHeader('Content-Type', 'application/json');
this.response.end(JSON.stringify(json, null, 2));
}
});
});

最佳答案

您的代码有几个问题。

首先,您似乎想从 url 中获取 _id 参数,但不知道如何获取。它存储在 this.params 上,所以它是 this.params._id

其次,您应该发送给 find 的第一个参数是一个 MongoDB 查询,在您的情况下是 { _id: this.params._id }

第三,这不是您在 Iron Router 中渲染内容的方式。 render 方法的字符串参数是您要呈现的模板的名称,而不是项目。

假设 myItems 是一个有效的集合并且您的模板名为 showItem,您的代码应该类似于:

Router.route('items/:_id', {
name: 'showItem',
data: function () {
return myItems.find({ _id: this.params._id });
}
});

关于javascript - 通过 Meteor Iron Router 获取 Json/Collection 的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30735060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com