使用 Sinatra 和 MongoDB 在 IBM Bluemix 上构建一个大会签到应用程序-1
 
- UID
- 1066743
|

使用 Sinatra 和 MongoDB 在 IBM Bluemix 上构建一个大会签到应用程序-1
构建您的应用程序需要做的准备工作- 基本熟悉 Ruby 和一种 Ruby 开发环境
- 安装在本地的 MongoDB
- 一个 帐户
- Bluemix 命令行接口 cf
- 一个用来访问 API 的 Twitter 帐户
为了简便起见,本教程未包含所有源代码清单,但您可以在 JazzHub 上下载该应用程序的完整源代码。一定要下载该代码,这样您才能顺利完成学习本教程。
第 1 步. 创建应用程序首先,要有一个正常运行的 Sinatra 应用程序。在安装 Ruby 后,实现此目的就非常简单。无需安装构建应用程序所需的所有工具,我们将使用 bundler 来管理依赖关系。如果没有安装此工具,可以运行下面这条命令来安装它:
如果使用的是 UNIX® 平台,在安装此工具时,可能需要使用 sudo。
在安装 bundler 后,就可以开始处理我们的应用程序。为应用程序创建一个新项目目录,在此目录中创建一个名为 Gemfile 的新文件。这个文件将定义应用程序的所有依赖关系。将以下代码添加到此文件中。
1
2
3
4
5
6
7
8
9
| source 'https://rubygems.org'
gem 'sinatra', '>= 0'
gem 'haml', '>= 0'
gem 'json', '>=0'
gem 'mongo', '>=0'
gem 'bson', '>=0'
gem 'bson_ext', '>=0'
gem 'actionview', '>=0'
gem 'twitter', '>=0'
|
在命令行,导航到项目目录并运行以下命令:
这会安装 Gemfile 中列出的依赖关系。依赖于具体的操作系统,在运行此命令时,系统可能要求您输入密码。接下来,让我们的 Sinatra 应用程序正常运行。创建一个名为 app.rb 的新文件并向其中添加以下代码。
1
2
3
4
5
| require "sinatra"
get "/" do
"Hello, world!"
end
|
最后,创建一个名为 config.ru 的文件。它的内容为:
1
2
| require './app'
run Sinatra::Application
|
现在应能够运行您的应用程序了。在命令行,在项目目录中运行下面这条命令:
这会在您机器的端口 4567 上运行一个 Web 服务器。要查看应用程序的实际运行情况,可以在浏览器中访问 http://localhost:4567。您会看到一个类似下图的屏幕:
第 2 步. 将应用程序推送到 Bluemix要使用 Bluemix,需要安装命令行接口工具 cf。如果尚未安装此工具,可以转到项目的 GitHub 页面 (https://github.com/cloudfoundry/cli) 获取下载说明。您还可以从 Bluemix 仪表板创建应用程序和服务,但始终需要使用 cf 来部署应用程序;所以我们将使用它来执行本教程中的所有操作。
要连接到 Bluemix API 并使用您的 Bluemix 帐户登录,可以运行以下命令:
输入第二个命令后,需要提供您的电子邮件地址和密码。
警告:在部署到 Bluemix 时,一定要输入应用程序的惟一名称和主机名。如果使用我在示例中提供的名称,将得到错误。
接下来,在项目根目录下创建一个名为 manifest.yml 的新文件。此文件告诉 Bluemix,您希望如何部署应用程序。将以下代码添加到该文件中,但一定要将主机名更改为惟一的名称,否则部署将失败。
1
2
3
4
5
6
7
8
| applications:
- name: myconf2014
host: myconf2014
disk: 1024M
path: .
domain: ng.bluemix.net
mem: 128M
instances: 1
|
现在可以使用下面这条命令将此应用程序部署在 Bluemix 上:
部署应用程序后,您应看到一条消息,其中表明应用程序已启动并包含应用程序的 URL。将这个 URL http://myconf2014.ng.bluemix.net 加载到浏览器中,测试该应用程序能否正常运行。
进入该 URL 后,继续创建 MongoDB 服务:
1
| cf create-service mongodb 100 myconf2014db
|
一定要将数据库名称(上面的 myconf2014db)更改为某个惟一的名称。我们的应用程序要能够连接到数据库,还需要绑定它:
1
| cf bind-service myconf2014 myconf2014db
|
需要重新启动应用程序,绑定才会被激活。现在还不需要这么做,因为我们很快会推送一些更改。接下来,设置我们的应用程序,以便获得访问 Twitter API 的能力。 |
|
|
|
|
|