NodeJS with MongoDB - 将项目推送到Github

时间:2016-02-10 19:35:03

标签: node.js git mongodb github

我是NodeJS和MongoDB的新手,我开始了一个带有Webstorm的MEAN堆栈的新项目。我有一个空的基础项目,并希望将其提交给Github。

我有一个名为“data”的目录,用于项目的MongoDB部分。只需使用MongoDB设置此目录,就会加载300mb的文件。 gitignore这个数据目录是否安全? Github不喜欢大文件。

MongoDB生成的文件的图片

enter image description here

4 个答案:

答案 0 :(得分:2)

您可以安全地忽略mongodb数据文件。

通常数据文件不包含在项目结构中。您只需要在开发计算机上使用这些文件,以便可以在本地运行您的应用程序。将应用程序部署到生产环境后,如果在副本集中运行多个节点,则将连接到另一个可能是完全独立的计算机的数据库。

您还可以将node_modules目录添加到.gitignore,因为您通常会在部署过程中安装这些目录。

Github为各种语言提供了一些示例.gitignore文件 - 您可能会发现查看nodejs one

有用

答案 1 :(得分:1)

  

gitignore这个数据目录是否安全

Yes it is。这也是一个good practice gitignore这样的内容,因为它没有任何意义。特别是当mongo正在运行时,其中一些文件被锁定以供mongod独占访问,并且摆弄它可能会损坏您的数据库。

您可以对mongodump的压缩输出进行版本设置,但这听起来并不疯狂。您可以使用Git hookspre-commitpost-commit触发mongodump,然后压缩备份然后对其进行版本控制。

还有一些在线服务可以让您自动备份mongodb实例,例如MongoDB Monitoring Service和其他可以谷歌的实例。

我正在开展Node.js项目,我使用MongoDBNeo4j个数据库。我最近提出了neo4j-shell-tools的一个问题,我希望能够导出我的Neo4j数据库的图形结构,我可以很容易地在项目结束时对其进行版本回顾并查看如何Neo4j数据库从头开始演变为功能齐全的数据库。如果我必须回滚到之前的Neo4j数据库结构,那么我下载版本化的图形结构并将其恢复到空数据库中。

MongoDB和Neo4j的数据库都不在我的工作区中,它们位于默认位置。我有以下.gitignore文件,以防你想重用它并包含数据目录的规则(就像我为节点模块做的那样)

# Specifies intentionally untracked files to ignore when using Git
# http://git-scm.com/docs/gitignore

node_modules/
platforms/
plugins/
hooks/
public/jquery
photos/


# Compiled source #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so

# Packages #
############
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip

# Logs and databases #
######################
*.log
*.sql
*.sqlite

# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

我还决定不进行版本控制node_modules,是否要这样做是值得商榷的。

答案 2 :(得分:0)

有关您的信息,您可以将数据包与Github一起使用。

https://github.com/pricing

enter image description here

但最好的解决方案是将您的数据存储在Compose.io(免费)或其他云提供商......

答案 3 :(得分:0)

您应该使用npm全局安装mongodb模块。

https://docs.npmjs.com/getting-started/installing-npm-packages-globally