[英]Meteor: inserting in collection using for loop only inserts first loop
我只是在学习流星(一般情况下很好的开发),并且试图在服务器端使用简单的for循环插入集合中
getFriendsData: function() {
for (i=0; i<10; i+=1){
console.log (i)
Friendlist.insert({
name: "test"+i,
"userid": Meteor.user()._id
})
}
由于某种原因,这只会给我一个结果(第一个test0)。 日志显示整个循环正在运行,但是只有一个插入。 有人可以解释这里发生了什么吗? 提前致谢
您的代码看起来还不错,您如何断言它没有按预期执行操作?
这是对您的代码的重写,当在我的机器上测试时,该代码运行良好:
lib / collections / friendlist.js:
Friendlist=new Meteor.Collection("friendlist");
server / server.js:
Meteor.methods({
getFriendsData:function(){
if(!this.userId){
throw new Meteor.Error(500,"Must be signed in to get friends data !");
}
for(var i=0;i<10;i++){
console.log(i);
Friendlist.insert({
name:"test"+i,
userId:this.userId
});
}
Friendlist.find().forEach(function(name){
console.log(friend.name);
});
}
});
Meteor.startup(function(){
// for testing purpose : always reset data on startup
Friendlist.remove({});
});
然后您是Meteor.call("getFriendsData");
在浏览器控制台和服务器控制台中,您会看到Friendlist
的10个文档按原样打印。
如果未删除autopublish
程序包,则可以在浏览器控制台中键入Friendlist.find().fetch()
来检查是否正确插入了10个文档。
如果仍然不起作用,请显示更多可能有副作用的代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.