freeCodeCamp/guide/chinese/miscellaneous/guide-for-using-mongodb-and.../index.md

118 lines
5.0 KiB
Markdown
Raw Normal View History

---
title: Guide for Using MongoDB and Deploying to Heroku
localeTitle: 使用MongoDB和部署到Heroku的指南
---
在本指南中让我们看看如何在本地使用MongoDB并使用`mLab`将其部署到Heroku。或者您也可以在Heroku中使用`mLab`插件,它是免费的,但可能需要您的信用卡详细信息。因此,如果您对提供信用卡详细信息不感兴趣,可以访问[mLab](https://mlab.com)网站。
## 在Heroku和`mLab`上设置一个免费帐户:
注册[Heroku](https://signup.heroku.com/)和[mLab](https://mlab.com/signup/)
## 启动Mongodb本地
要在您自己的系统上启动数据库,请执行以下命令:
```
# Create a directory named 'data' if it doesn't exist
$ mongod --port 27017 --dbpath=./data
```
现在你的Db正在运行 -
`mongodb://localhost:27017/my_database_name`
如果您使用的是c9如果在C9中启动数据库时遇到问题请参阅此[页面](https://community.c9.io/t/setting-up-mongodb/1717)
## 启动Mongodb `mLab`
1. 创建`mLab`帐户后,单击**Create new**按钮并选择Single-node - > Sandbox以获取免费Db并为您的数据库命名我为此创建了一个名为'food'的数据库)。
2. 现在创建一个名为'food'的数据库,您可以创建自己的新集合。
3. 最后添加可以访问此数据库的用户/用户,在添加用户时,它将询问用于访问数据库的用户名和密码。
现在你的数据库正在运行url这样的东西 -
`mongodb://username:password@ds01316.mlab.com:1316/food`
其中,用户名和密码是您添加用户时提供的详细信息。
您可以在[https://mlab.com/databases/your _数据库_名称中](https://mlab.com/databases/your_database_name)找到您的数据库URL
## 在Node.js中与MongoDB建立连接当DB在本地系统上运行时
要使用数据库首先需要创建连接。在本节中我们将使用MongoDB的本机Node.js驱动程序来创建与MongoDB服务器的连接。要安装mongodb本机驱动程序请使用npm命令安装mongodb模块。之后在项目目录中运行以下命令。
`npm install mongodb`
连接MongoDB的基本代码
```
//lets require/import the mongodb native drivers.
var mongodb = require('mongodb');
//We need to work with "MongoClient" interface in order to connect to a mongodb server.
var MongoClient = mongodb.MongoClient;
// Connection URL. This is where your mongodb server is running.
//(Focus on This Variable)
var url = 'mongodb://localhost:27017/my_database_name';
//(Focus on This Variable)
// Use connect method to connect to the Server
MongoClient.connect(url, function (err, db) {
if (err) {
console.log('Unable to connect to the mongoDB server. Error:', err);
} else {
console.log('Connection established to', url);
// do some work here with the database.
//Close connection
db.close();
}
});
```
有关使用MongoDB的更多示例您可以参考此[博客](http://blog.modulus.io/mongodb-tutorial)
我们需要知道我们的mongodb服务器在哪里运行。 url表示运行mongodb服务器实例的位置以便我们可以连接到它。 url包含我们要连接的数据库名称。
假设您的数据库正在上面提到的url上运行现在让我们关注连接数据库的Url本地
`var url = 'mongodb://localhost:27017/my_database_name';`
### 在Node.js中与MongoDB建立连接当DB在您的`mLab`运行时):
连接到`mLab` DB的URL如下所示
`var url = 'mongodb://username:password@ds01316.mlab.com:1316/food';`
您可以用这个替换url变量一切都将按照应有的方式工作最后您的数据库在`mLab`安全可靠,您可以在其中查看您的收藏,用户,备份等。
### 重要的提示:
但是将您的用户名和密码提交到您的公共存储库有时非常危险所以永远不要将它们提交到公共存储库而是可以使用环境变量来存储URL包含用户名和密码以便在**本地**系统中执行此操作
对于Mac / Linux用户您只需键入
`export MONGOLAB_URI="mongodb://username:password@ds01316.mlab.com:1316/food"`
对于Windows用户
`SET MONGOLAB_URI=mongodb://username:password@ds01316.mlab.com:1316/food`
设置环境变量后,需要将环境变量调用到代码中。你可以输入这个来做
`var url = process.env.MONGOLAB_URI;`
现在您的MongoDb网址会安全地插入到您的代码中。您现在可以提交它并将其部署到您的heroku。
如果您需要更多帮助如何部署到Heroku您可以参考这个[Wiki](https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Heroku-Deployment-Guide)
## 最后的步骤:
将代码部署到Heroku应用程序后需要在heroku中为代码设置环境变量。
为此您需要从heroku远程运行以下命令
`heroku config:set MONGOLAB_URI=mongodb://username:password@ds01316.mlab.com:1316/food`
多数民众赞成,您的应用程序现已成功部署在带有`mLab` DB的heroku中