12
返回列表 发新帖
楼主: jieforest

[转载] 在OpenShift上部署MongoDB和Node.js应用

[复制链接]
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
11#
 楼主| 发表于 2014-4-2 12:49 | 只看该作者
继续rockin' on

MongoDB 是一个开源文档数据库, 也是一个主要NoSQL数据库. 为了添加一个 RockMongo ,一个用来与MongoDB交互和管理的web前端, 你需要执行这个命令:
  1. rhc cartridge add rockmongo
复制代码
之后将得到类似下面的输出:
  1. 01        C:\Users\Nikola\Desktop\mytest>rhc cartridge add rockmongo
  2. 02        DL is deprecated, please use Fiddle
  3. 03        Using rockmongo-1.1 (RockMongo 1.1) for 'rockmongo'
  4. 04        Adding rockmongo-1.1 to application 'mytest' ... done
  5. 05         
  6. 06        rockmongo-1.1 (RockMongo 1.1)
  7. 07        -----------------------------
  8. 08          Gears:          Located with mongodb-2.4, nodejs-0.10
  9. 09          Connection URL: https://mytest-chavo.rhcloud.com/rockmongo/
  10. 10         
  11. 11        Please make note of these MongoDB credentials:
  12. 12          RockMongo User: admin
  13. 13          RockMongo Password: ..i.aint.telin'..
  14. 14        URL: https://mytest-chavo.rhcloud.com/rockmongo/
复制代码

使用道具 举报

回复
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
12#
 楼主| 发表于 2014-4-2 12:50 | 只看该作者
如果你通过用户名和密码,那RockMongo将提供一个简单但是有用的界面:

使用道具 举报

回复
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
13#
 楼主| 发表于 2014-4-2 12:50 | 只看该作者
当然,如果你更喜欢Shell,你可以这样:
  1. rhc ssh
复制代码
然后通过命令行界面开始交互,输入:

  1. 1        mongo
  2. :
  3. 1        [mytest-chavo.rhcloud.com 532812f94382eca22b000657]\> mongo
  4. 2        MongoDB shell version: 2.4.6
  5. 3        connecting to: 127.9.197.130:27017/admin
  6. 4        Welcome to the MongoDB shell.
  7. 5        For interactive help, type "help".
  8. 6        For more comprehensive documentation, see
  9. 7                http://docs.mongodb.org/
  10. 8        Questions? Try the support group
  11. 9                http://groups.google.com/group/mongodb-user
复制代码

使用道具 举报

回复
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
14#
 楼主| 发表于 2014-4-2 12:51 | 只看该作者
现在选择一个跟你应用同名的数据库。
  1. > use mytest
  2. switched to db mytest
复制代码
像下面那样插入一些数据:
  1. > var a = {"user":"nikola", points:10};
  2. > db.scores.insert(a);
复制代码
和检查一下是否成功插入:
  1. > db.scores.find();
  2. { "_id" : ObjectId("53284189d6e5e4aedb1fbafd"), "user" : "nikola", "points" : 10 }
复制代码

使用道具 举报

回复
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
15#
 楼主| 发表于 2014-4-2 12:51 | 只看该作者
要用Node.js查询这些信息,首先必须用下面命令安装 mongojs
  1. npm install mongojs
复制代码
. 然后打开这个
  1. server.js
复制代码
文件 (它在你应用的根目录) ,然后加下面代码进去。
  1. 1        self.createRoutes
  2.   object:
  3. 01        self.routes['/db'] = function(req, res) {
  4. 02            var mongojs = require('mongojs');
  5. 03            var dbName = "/mytest";
  6. 04            var connection_string = process.env.OPENSHIFT_MONGODB_DB_USERNAME + ":" +  process.env.OPENSHIFT_MONGODB_DB_PASSWORD + "@" + process.env.OPENSHIFT_MONGODB_DB_HOST + dbName;
  7. 05            var db = mongojs(connection_string, ['scores']);
  8. 06            var books = db.collection('scores');
  9. 07         
  10. 08            db.scores.find(function(err, docs) {
  11. 09               res.send(docs);
  12. 10            });
  13. 11        };
复制代码

使用道具 举报

回复
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
16#
 楼主| 发表于 2014-4-3 12:56 | 只看该作者
一切就绪

现在是时候加这些变更到暂存状态
  1. git add .
复制代码
(你可能想要检查 Git 是否有问题). 你可以用下面命令检查要提交文件的状态
  1. git status
复制代码
. 提交你要执行的变更:
  1. git commit -a -m "Added code to talk to db"
复制代码
最后
  1. git push
复制代码
这样变更都上传到 OpenShift 上面部署了.

使用道具 举报

回复
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
17#
 楼主| 发表于 2014-4-3 12:56 | 只看该作者
现在,如果你完全按照这个教程来做, 打开链接 http://mytest-chavo.rhcloud.com/db (注意这里有个db,  如果你的链接无误,它将反映你的程序数据库 ) 你就能得到下面的输出:

使用道具 举报

回复
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
18#
 楼主| 发表于 2014-4-3 12:57 | 只看该作者
下面的这条有用命令可以大概了解到你的应用的设置:
  1. 01        C:\Users\Nikola\Desktop\mytest>rhc app show
  2. 02        DL is deprecated, please use Fiddle
  3. 03        mytest @ http://mytest-chavo.rhcloud.com/ (uuid: 532812f94382eca22b000657)
  4. 04        --------------------------------------------------------------------------
  5. 05          Domain:     chavo
  6. 06          Created:    10:33 AM
  7. 07          Gears:      1 (defaults to small)
  8. 08          Git URL:    ssh://532812f94dd2eca22b000657@mytest-chavo.rhcloud.com/~/git/mytest.git/
  9. 09          SSH:        532812f94382eca22b000657@mytest-chavo.rhcloud.com
  10. 10          Deployment: auto (on git push)
  11. 11         
  12. 12          mongodb-2.4 (MongoDB 2.4)
  13. 13          -------------------------
  14. 14            Gears:          Located with nodejs-0.10, rockmongo-1.1
  15. 15            Connection URL: mongodb://$OPENSHIFT_MONGODB_DB_HOST:$OPENSHIFT_MONGODB_DB_PORT/
  16. 16            Database Name:  mytest
  17. 17            Password:       ..ccc...
  18. 18            Username:       admin
  19. 19         
  20. 20          nodejs-0.10 (Node.js 0.10)
  21. 21          --------------------------
  22. 22            Gears: Located with mongodb-2.4, rockmongo-1.1
  23. 23         
  24. 24          rockmongo-1.1 (RockMongo 1.1)
  25. 25          -----------------------------
  26. 26            Gears:          Located with mongodb-2.4, nodejs-0.10
  27. 27            Connection URL: https://mytest-chavo.rhcloud.com/rockmongo/
复制代码

使用道具 举报

回复
论坛徽章:
277
马上加薪
日期:2014-02-19 11:55:14马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14马上有车
日期:2014-02-18 16:41:112014年新春福章
日期:2014-02-18 16:41:11版主9段
日期:2012-11-25 02:21:03ITPUB年度最佳版主
日期:2014-02-19 10:05:27现任管理团队成员
日期:2011-05-07 01:45:08
19#
 楼主| 发表于 2014-4-3 12:57 | 只看该作者
就这些了,是时候用它做些有用的东西了!

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表