2013-11-07 8 views
0

Я работаю над многопользовательской карточной игрой (думаю, Yu-gi-oh), основанной на реальных данных. У меня есть коллекция «данных» с данными об отдельных элементах и ​​еще одна коллекция «карт» с фактически выпущенными картами в игре.Выполнение скриптов на стороне сервера

Карты имеют отношение «много-к-1» к элементам данных (поэтому один элемент данных используется для заполнения данных параметров для нескольких копий одной карты, но с разными владельцами).

«Карты» публикуются клиенту (ами) в виде коллекции локальных подмножеств со всеми «данными», необходимыми для всех клиентских «карточных» элементов из клиентской публикации «карт».

Во время игры, и особенно в тестовой фазе, мне нужно «произвести партии карт» (и, возможно, выполнять другие функции настройки и тонкой настройки) из командной строки/терминала/оболочки, используя вспомогательные функции с параметрами (например, card.issue (10), который создал бы 10 новых карт).

Я хотел бы сделать это из командной строки/терминала/оболочки, чтобы избежать написания интерфейса администратора, пока я не уверен, что будет сделано вручную, и что автоматически.

Где я могу поместить файл .js с такими скриптами помощи (функции с параметрами) и как я могу запустить их из терминала? Как я могу получить доступ к объектам meteor (server-side) из терминала/оболочки?

ответ

2

Самый простой способ добиться этого - это скрипт в node.js.

1) Вы помещаете эти файлы в любое удобное для вас время, просто убедитесь, что они не в сфере интересов Метеор. Поэтому, если вы хотите поместить их в каталог проекта, поместите их в скрытую (начиная с .) подпапку.

2) Вы запускаете эти файлы как типичный сценарий узла: node path/to/file.js.

3) Вам не нужно получать доступ к структуре Meteor из этого сценария, только базы данных. Для этого вам нужен драйвер Монго (узел mongodb пакет - here's the handy documentation), затем:

  • нагрузки это:

    var MongoClient = require('mongodb').MongoClient; 
    
  • Подключение к локальной БД:

    MongoClient.connect('local_db_url', function(err, db) { 
        ... 
    }); 
    
  • Внутри обратного вызова соединения введите свои объекты:

    var cards = db.collection('cards'); 
    cards.insert(card, {safe: true}); 
    
+0

Звучит здорово! Думаю, для меня большая проблема заключалась в том, что я вскочил в Meteor прямо из мышления PHP/Javascript (глядя на лучшую структуру). Таким образом, у меня на самом деле нет опыта работы с узлами - все здесь понятно в теории и как концепция, но у меня есть 0 часов программирования на заднем узле :(Можете ли вы, возможно, предложить солидный источник/учебник с практическими примерами и как- tos? Thx! – zdusper

Смежные вопросы