我有一个简单的帖子路由,用于查找帖子 _id
。
问题是 pathFor
帮助程序创建了这样的路径:
ObjectID("52e16453431fc2fba4b6d6a8")
我猜 mongoDB 插入已经改变,现在 _id
对象在其中包含另一个名为 _str
的对象。
这是我的路线:
this.route("post", {
path: "/post/:_id",
waitOn:function(){
NProgress.start();
Meteor.subscribe("Teams");
},
before: function () {
NProgress.done();
},
data: function () {
return Posts.findOne({_id: this.params._id});
}
});
目前,它创建了一个 href
像:
post/ObjectID("52e16453431fc2fba4b6d6a8")
点击它打开一个 url
post/ObjectID("52e16453431fc2fba4b6d6a8")
但是,我得到的是“NotFound”模板而不是帖子。
我该如何解决这个问题?
最佳答案
您需要更改 pathFor 'post'
以传递 ObjectId 52e16453431fc2fba4b6d6a8
的十六进制表示,而不是 ObjectId('52e16453431fc2fba4b6d6a8')
试试这样的 pathFor 'post' _id=this._id.toHexString
一旦你传递了十六进制字符串,你就可以在你的路由器中使用它
return Posts.findOne({ _id: new Meteor.Collection.ObjectID(this.params._id)});
关于mongodb - 了解新的 mongo id 并将其与 iron-router 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21317621/