对于我正在处理的mean.js项目,我有一个csv数据文件需要在我的一个服务器控制器中检查。我每次执行此检查时都不是在控制器中打开csv文件,而是将所有数据移动到我的Mongo数据库中,然后快速查询检查。通常情况下,我会使用一个简单的python脚本进行数据库操作,但是对于这个项目,我正在使用Mean.js提供的Mean堆栈,由一些工程师组成的团队在几个不同的环境中工作。
所以,我想要做的是找出一种在我的mean.js app中自动创建和填充这个数据库的方法,所以:
我使用grunt作为应用程序范围的任务管理器,但每次构建应用程序时它都会运行每个任务,这意味着它会重复执行此操作。
有没有人对如何做到这一点有更好的建议?
答案 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时,您的数据库将只填充一次。