как получить название & ldquo; title: my title & rdquo; ценность от монгодба в метеор? [Дубликат]

неопределенная ссылка на WinMain@16 или аналогичную «необычную» main() ссылку на точку входа (особенно для ).

Вы возможно, пропустили, чтобы выбрать правильный тип проекта с вашей реальной IDE. IDE может захотеть связать, например. Проекты приложений Windows для такой функции точки входа (как указано в недостающей ссылке выше) вместо обычной int main(int argc, char** argv);.

Если ваша среда IDE поддерживает Plain Console Projects , вы может захотеть выбрать этот тип проекта вместо проекта приложения Windows.


Здесь case1 и case2 обрабатываются более подробно из реальный мир проблема.

3
задан Melvrick Goh 10 September 2013 в 06:11
поделиться

1 ответ

Метод

find возвращает курсор, а не объект или массив. Чтобы получить доступ к объекту, вам нужно либо извлечь его из курсора

var skill = Skills.find(Session.get('selected_skill')).fetch()[0];

, либо получить его непосредственно с помощью findOne:

var skill = Skills.findOne(Session.get('selected_skill'));

Тогда вы можете использовать его так же, как любой другой объект js:

console.log(skill.mana);
skill._cache = {cooldown: true};

& nbsp;


& nbsp;

Имейте в виду, что на стороне клиента методы сбора данных, такие как find являются неблокирующими. Они возвращают все, что имеет Метеор в кеше, не обязательно то, что находится на стороне сервера db. Вот почему вы всегда должны использовать их в реактивном контексте или следить за тем, чтобы все данные были получены до их выполнения (не беспокойтесь о последнем, пока не начнете говорить с Meteor, начните с первого раза).

Также вам нужно иметь в виду, что из-за этого findOne и find.fetch могут возвращать null / пустой массив, даже если соответствующий элемент находится в db (но еще не кэширован). Если вы не принимаете это во внимание в своих реактивных функциях, вы столкнетесь с ошибками.

Template.article.slug = function() {
    var article = Articles.findOne(current_article);
    if(!article) return '';
    return slugify(article.title);
};

Если бы мы не убежали от функции с if(!article), выражение article.title вызвало бы ошибку при первом вычислении, так как article не был бы определен (предполагая, что он ранее не был кеширован).

& nbsp;


& nbsp;

Если вы хотите обновить базу данных с клиентской стороны, вы можете изменить только один элемент за раз, и вы должны обратиться к элементу с помощью _id. Это связано с соображениями безопасности. Ваша строка для этого была в порядке:

Skills.update(Session.get('selected_skill'), {$inc: {mana: 1}});

& nbsp;


& nbsp;

alert() - это функция, которая возвращает / g0] undefined независимо от того, что вы его кормите.

alert(42); // -> undefined

Как правило, гораздо лучше отлаживать с console.log, чем с alert.

5
ответ дан Hubert OG 26 August 2018 в 00:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: