0

我正在开发基于真实世界数据的多人纸牌游戏(想想 Yu-gi-oh)。我有一个包含单个项目数据的集合“数据”和另一个包含游戏中实际发行的卡片的集合“卡片”。

卡片与数据项具有多对一的关系(因此一个数据项用于填充单个卡片的多个副本的参数数据,但具有不同的所有者)。

“卡片”作为本地子集集合发布给客户端,其中包含来自客户端发布的“卡片”的所有客户端“卡片”项所需的所有“数据”项。

在游戏过程中,尤其是在测试阶段,我需要使用带有参数的辅助函数(如 card.issue( 10)这将创建10张新卡)。

我想从命令行/终端/shell 执行此操作以避免编写管理前端,直到我确定将手动完成什么以及自动完成什么。

我将在哪里放置带有此类帮助脚本(带参数的函数)的 .js 文件,以及如何从终端运行它们?如何从终端/外壳访问流星(服务器端)对象?

4

1 回答 1

2

实现这一点的最简单方法是使用 node.js 中的脚本。

1)您可以随时放置这些文件,只要确保它们不在 Meteor 的关注范围内。因此,如果要将它们放在项目目录中,请将它们放在隐藏的(以 开头.)子文件夹中。

2)您将这些文件作为典型的节点脚本运行:node path/to/file.js.

3)您不需要从该脚本访问 Meteor 结构,只需访问数据库即可。为此,您需要一个 Mongo 驱动程序(节点mongodb包 -这是方便的文档),然后:

  • 加载它:

    var MongoClient = require('mongodb').MongoClient;
    
  • 连接到本地数据库:

    MongoClient.connect('local_db_url', function(err, db) {
        ...
    });
    
  • 在连接回调中,插入您的对象:

    var cards = db.collection('cards');
    cards.insert(card, {safe: true});
    
于 2013-11-07T20:17:22.040 回答