运行Mean.js应用程序时自动填充数据库

时间:2015-07-07 16:38:12

标签: node.js mongodb automation gruntjs meanjs

对于我正在处理的mean.js项目,我有一个csv数据文件需要在我的一个服务器控制器中检查。我每次执行此检查时都不是在控制器中打开csv文件,而是将所有数据移动到我的Mongo数据库中,然后快速查询检查。通常情况下,我会使用一个简单的python脚本进行数据库操作,但是对于这个项目,我正在使用Mean.js提供的Mean堆栈,由一些工程师组成的团队在几个不同的环境中工作。

所以,我想要做的是找出一种在我的mean.js app中自动创建和填充这个数据库的方法,所以:

  1. 我可以访问环境变量(尤其是数据库) 名称)
  2. 可以在其他工程师上轻松创建此数据库。 机器和其他环境
  3. 它只会在工程师第一次在拉动我的更改后构建应用程序时运行
  4. 我使用grunt作为应用程序范围的任务管理器,但每次构建应用程序时它都会运行每个任务,这意味着它会重复执行此操作。

    有没有人对如何做到这一点有更好的建议?

1 个答案:

答案 0 :(得分:1)

两个建议:

首先,您可以使用npm脚本:https://docs.npmjs.com/misc/scripts

所以,例如,如果你的"创建数据库" script是一个python文件,您可以将其添加到package.json

{
  ...
  "scripts": {
    "createdb": "python create_database.py"
  }
  ...
}

现在你可以在需要的时候运行它:

npm run-script createdb

不过,这是非常手动的。这引出了我的第二个建议:

您可以创建一个填充数据库的grunt任务,并在运行后创建一个隐藏文件,指示它已经运行。在运行之前,检查文件是否存在,如果存在,则跳过任务。

将隐藏文件添加到.gitignore,每次克隆项目并启动grunt时,您的数据库将只填充一次。