我正在尝试运行一个简单的脚本,该脚本将使用 X 射线刮取一些数据并将其插入到我的事件集合中。
if (Meteor.isServer) {
var Xray = Meteor.npmRequire('x-ray');
var xray = new Xray({
version: "2.0.3"
});
xray('http://www.events12.com/seattle/january/', '.qq', [{
title: '.title',
date: '.date',
link: 'a @href',
allContent: '@html'
}])(function(err, content) {
for (var i = 0; i < content.length; i++) {
(function() {
console.log(i);
var newEvent = {
owner: 'me',
name: content[i].title,
date: content[i].date,
url: content[i].link,
createdAt: new Date(),
description: 'none'
};
console.log(newEvent);
Events.insert(newEvent, function(err, data) {
console.log(err);
console.log(data);
});
})();
}
});
}
接收内容的 X 射线回调将所有抓取的数据放在一个对象数组中,每个对象都有几个属性。当我尝试将此数据插入到我的事件集合中时,for 循环迭代一次然后退出,但没有显示错误。如果我删除Events.insert()
循环一直迭代。
我错过了什么?执行此类任务的正确方法是什么?