zoukankan      html  css  js  c++  java
  • VMWare的Cloud Foundry实践(二):和MongoDB对接成功~

    晚上继续照着教程,完成了对MongoDB的对接,中间有一些小坎坷。

    1. 照着这个教程来:http://docs.cloudfoundry.com/services/mongodb/nodejs-mongodb.html

    2. 下载安装MongoDB:http://blog.csdn.net/puncha/article/details/8267207

    3. 新建一个文件夹mongo,创建主页main.js,并写入如下代码:

    简单说一下,这个代码一开始定义了mongo对象,这个if-else是为了让这个程序在云端和本地都能使用,假如是云端的话,走的时if支线,mongo从VCAP_SERVICES里面取配置。假如是本地的话,走else分支,mongodb的地址是localhost。之后通过函数generate_mongo_url()拼接出mongoDB的URL。之后,再取得了用户的远程地址之后,把他加入数据库,并在浏览器显示。


    // mongodb-65b2c
    if(process.env.VCAP_SERVICES){
      var env = JSON.parse(process.env.VCAP_SERVICES);
      var mongo = env['mongodb-2.0'][0]['credentials'];
    }
    else{
      var mongo = {
        "hostname":"localhost",
        "port":27017,
        "username":"",
        "password":"",
        "name":"",
        "db":"db"
      }
    }
    
    var generate_mongo_url = function(obj){
      obj.hostname = (obj.hostname || 'localhost');
      obj.port = (obj.port || 27017);
      obj.db = (obj.db || 'test');
    
      if(obj.username && obj.password){
        return "mongodb://" + obj.username + ":" + obj.password + "@" + obj.hostname + ":" + obj.port + "/" + obj.db;
      }
      else{
        return "mongodb://" + obj.hostname + ":" + obj.port + "/" + obj.db;
      }
    }
    
    var mongourl = generate_mongo_url(mongo);
    
    var record_visit = function(req, res){
      /* Connect to the DB and auth */
      require('mongodb').connect(mongourl, function(err, conn){
        conn.collection('ips', function(err, coll){
          /* Simple object to insert: ip address and date */
          object_to_insert = { 'ip': req.connection.remoteAddress, 'ts': new Date() };
    
          /* Insert the object then print in response */
          /* Note the _id has been created */
          coll.insert( object_to_insert, {safe:true}, function(err){
            res.writeHead(200, {'Content-Type': 'text/plain'});
            res.write(JSON.stringify(object_to_insert));
            res.end('\n');
          });
        });
      });
    }
    
    var http = require('http');
    
    http.createServer(function (req, res) {
            record_visit(req, res);
        }).listen(3000);
    

    4. 还有重要的一步,在项目的目录下执行npm install mongodb,这个会在项目的文件夹里面,下载一些文件,也就是mongodb的支持库。

    一开始我在另外一个控制台执行npm install mongodb,以为他对全局都生效,后来在部署的时候,死活通不过,在Checking MongoDB的时候失败!

    5. 现在可以部署了,使用 vmc update 发布应用。注意,在被问到是不是要额外的Service时,一定要选yes,然后CF云就会帮你添加对MongoDB的支持。

    6. 测试一下:http://mongoapp.cloudfoundry.com/



  • 相关阅读:
    第3次作业:卷积神经网络
    第一次作业:深度学习基础
    CSS基础总结
    Java 9.Spring--AOP
    Java 8.Spring--整合Junit测试
    Java 7.Spring--使用注解
    Java 6.Spring--对象的依赖关系-复杂类型注入
    Java 5.Spring的依赖注入
    Java 4.Spring的对象创建的方法
    Java 3.Spring的对象创建的细节
  • 原文地址:https://www.cnblogs.com/puncha/p/3877024.html
Copyright © 2011-2022 走看看