ПРОБЛЕМА: Я хочу проанализировать элементы на странице с другого сайта, приклеить результирующие элементы в объекте и вставить его в коллекцию Mongo. Перед вставкой я хочу проверить, есть ли у моего Монго еще один объект. Если это так, он должен выйти из запущенных функций, иначе я хочу, чтобы скрипт начал синтаксический анализ следующей цели.MeteorJS: CALLBACKS
Пример:
- У меня есть функция, которая подключается к веб-странице и возвращает его
body
содержание - Он разобранную
- Когда
<a></a>
элементы выполнены, другой обратного вызова вызывается, в котором все анализируемые элементы объединены в один объект и вставлены в коллекцию
Мой код:
var Cheerio = Meteor.npmRequire('cheerio');
var lastUrl;
var exit = false;
Meteor.methods({
parsing:function(){
this.unblock();
request("https://example.com/", Meteor.bindEnvironment(function(error, response, body) {
if (!error && response.statusCode == 200) {
$ = Cheerio.load(body);
var k = 1;
$("div.content").each(function() {
var name = $...//parsing
var age = $....//parsing
var url = $...//parsing <a></a> elements
var r = request("https://example.com/"+url, Meteor.bindEnvironment(function(error, response, body) {
lastUrl = response.request.uri.href;// get the last routing link
var metadata = {
name: name,
age: age
url: lastUrl
};
var postExist;
postExist = Posts.findOne(metadata); // return undefined if doesnt exist, AND every time postExist = undefined ??
if (!postExist){
Posts.insert(metadata);// if post doesnt exist (every time go here ??)
}
else {
exit = true; // if exist
}
}));
if (exit === true) return false;
});
}
}));
}
});
Задача 1: Проблема моя функция работает каждый раз, но это не мешает, даже если объект существует в моей коллекции
Задача 2: postExist всегда неопределенные
EDIT: Выполнение должно прекратиться и ждать ответа второго запроса.
var url = $...//parsing <a></a> elements
//STOP HERE AND WAIT !!
var r = request("https://example.com/"+url, Meteor.bindEnvironment(function(error, response, body) {
_UNTIL моей база данные не существует такие же документа, если объект существует, я должен выйти все functions._ Это неизвестный язык на земле – Atrahasis
@Atrahasis отредактирован, я надеюсь, что это more non-unknown language on earth_ haha –