我正在基于真实世界的数据开发一款多人纸牌游戏(想想Yu-gi-oh)。我有一个集合“数据”,其中包含各个项目的数据,以及另一个集合“卡片”,其中包含游戏中实际发行的卡片。
卡与数据项具有多对一的关系(因此,一个数据项用于填充单个卡的多个副本的参数数据,但具有不同的所有者)。
“卡片”作为本地子集集合发布给客户,其中包含客户端出版的“卡片”中所有客户端“卡片”所需的所有“数据”项。
在游戏过程中,特别是在测试阶段,我需要使用带参数的辅助函数(如卡片)从命令行/终端/ shell“生成批量卡片”(并可能执行其他设置和微调功能) .issue(10)会创造10张新牌)。
我想从命令行/终端/ shell执行此操作,以避免编写管理员前端,直到我确定将手动完成的操作,以及自动执行的操作。
我将.js文件放在哪里有这样的帮助脚本(带参数的函数)以及如何从终端运行它们?如何从终端/ shell访问流星(服务器端)对象?
答案 0 :(得分:2)
实现此目的的最简单方法是node.js中的脚本。
1)您可以随时放置这些文件,只需确保它们不在Meteor的兴趣范围内。因此,如果您想将它们放在项目目录中,请将它们放在隐藏的(从.
)子文件夹开始。
2)您将这些文件作为典型的节点脚本运行:node path/to/file.js
。
3)您不需要从该脚本访问Meteor结构,只需要访问数据库。为此,您需要一个Mongo驱动程序(节点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});