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

Automatically populating a database when running Mean.js application

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

所以,我想做的是找出一种在我的 mean.js 应用程序中自动创建和填充此数据库的方法,因此:

  1. 我可以访问环境变量(尤其是数据库 名字)
  2. 这个数据库可以很容易地在其他工程师的基础上创建 机器和其他环境
  3. 它只会 运行 工程师在提取我的更改后第一次构建应用程序时

我正在使用 g运行t 作为应用程序范围的任务管理器,但它 运行 每次构建应用程序时都会执行每个任务,这意味着它会重复执行此操作。

有没有人对此有更好的建议?

两条建议:

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

因此,例如,如果您的 "create database" 脚本是一个 python 文件,您可以将其添加到您的 package.json:

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

现在您可以在需要时 运行 像这样:

npm run-script createdb

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

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

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