`

Ruby&CouchDB之Hello World

 
阅读更多
require 'net/http'

module Couch
  class Server
    #类默认构造函数名,ruby中null使用nil表示
    def initialize(host,port,options = nil)
      #‘@’表示类成员变量
      @host=host
      @port=port
      @options=options
    end
  
    def put(uri,json)
      #'::'表示常量的引用
      req = Net::HTTP::Put.new(uri)
      req["content-type"] = "application/json" 
      req.body = json
      request(req)
    end
    
    def get(uri)
      request(Net::HTTP::Get.new(uri))
    end
    
    def delete(uri)
      request(Net::HTTP::Delete.new(uri))
    end
        
    def request(req)
      res = Net::HTTP.start(@host,@port){|http| http.request(req)}
      #判断方法一般以‘?’结尾
      unless res.kind_of?(Net::HTTPSuccess){
           handle_error(req,res)
       }
      end
      res 
    end
    
    private
    def handle_error(req,res)
      e = RuntimeError.new("#{res.code}:#{res.message}\n METHOD:#{req.method}\nURI:#{req.uri}\n#{req.body}")
      raise e      
    end
  end  
end


Test Class
#引用自己写的Module时,注意路径问题
require 'couchdb/Couch'

server = Couch::Server.new("localhost","5984")
server.put("/foo","hello world")
#Json字符串的构造方式
doc = <<-JSON
{"name":"xianning","sex":"male"}
JSON
puts doc
server.put("/foo/doc_id",doc)
res = server.get("/foo/doc_id")
puts res.body
分享到:
评论

相关推荐

    pouchout-example:Knockout.js&Pouchdb&Couchdb&Todos

    【标题】"pouchout-example: Knockout.js与Pouchdb、Couchdb及Todos的结合应用" 在本文中,我们将深入探讨一个名为“pouchout-example”的项目,它巧妙地将Knockout.js、PouchDB和CouchDB集成在一起,用于实现一个...

    ruby-couch-db:Ruby gem与CouchDB数据库接口,专注于批量请求

    Ruby CouchDB Ruby gem,用于连接到Ruby中的CouchDB数据库,重点是批量请求。 确保观看Tim Anglade的精彩演讲。 安装 将此行添加到应用程序的Gemfile中: gem 'couch-db' 然后执行: $ bundle 或将其自己安装为...

    Beginning CouchDB.pdf

    5. **简单易用**:CouchDB的设计理念之一就是简单直观,即使是初学者也能快速上手。 6. **高可用性**:CouchDB支持多副本机制,确保了数据的安全性和系统的可靠性。 #### 三、CouchDB的基础架构 CouchDB的架构主要...

    awesome-couchdb, CouchDB精选元资源&最佳实践列表.zip

    awesome-couchdb, CouchDB精选元资源&最佳实践列表 出色的CouchDB 面向CouchDB的curated元资源&最佳实践列表。是一个面向文档的面向服务的数据库,它同步。欢迎请求请求。电子邮件内容模式&最佳实践。Map/Reduce连接...

    Apress.Beginning.CouchDB.Dec.2009.pdf

    首先,书中介绍了CouchDB的基本概念,通过对比传统的关系型数据库系统,揭示了CouchDB的独特之处,如分布式、文档导向和基于JSON的数据存储。此外,书中还简述了CouchDB的发展历程,并列举了它相对于其他数据库系统...

    CouchDB20 分钟入门

    学习couchDB 的入门教程

    apache-couchdb-2.3.1.zip

    Apache CouchDB是一个开源的、基于文档的分布式数据库系统,它采用了JSON作为数据格式,并使用JavaScript进行查询和数据处理。在2.3.1版本中,CouchDB继续提供了一流的可扩展性和灵活性,适用于各种应用程序,特别是...

    couchdb源码

    CouchDB是一款开源的文档数据库管理系统,以其独特的JSON数据模型、RESTful API和分布式系统设计而闻名。在深入探讨CouchDB源码之前,我们首先理解CouchDB的基本概念和工作原理。 CouchDB的核心是基于JSON...

    couch_potato, 用于CouchDB的ruby 持久层.zip

    couch_potato, 用于CouchDB的ruby 持久层 沙发土豆。是用 ruby 编写的用于CouchDB的持久层。 从 1.x-升级到 2.x本版 1.x 猴修补 Date#to_json ( =&gt;"2015/01/01") 和 Time#to_json ( =&

    CouchDB权威指南(中文 完整版)

    CouchDB的设计目标之一是易于复制和扩展,这意味着可以在多个服务器之间轻松地同步数据。此外,CouchDB支持版本控制,能够追踪每个文档的历史变更记录。 ### 数据模型与存储机制 在CouchDB中,数据是以文档的形式...

    CouchDB资料整理

    多版本并发控制(MVCC)是CouchDB的显著特点之一,它允许多个节点进行写操作,而系统会自动检测并解决多个操作之间的冲突。这一特性使得CouchDB非常适合需要并发读写操作的应用场景。 CouchDB支持水平扩展性,这...

    CouchDB权威指南(带详细目录)PDF

    通过《CouchDB权威指南》,你将学会如何通过CouchDB的RESTful Web接口来使用它,此外你还会熟悉CouchDB的一些主要特性,比如简单的文档的CRUD(创建、读取、更新、删除); 高级的MapReduce,部署优化等更多的内容...

    CouchDB独立博客sofa-CouchDB.zip

    sofa-CouchDB 是 CouchDB 的独立博客,使用 CouchDB 的书来做主要内容,这方便了所有用来在这博客上交流他们的想法,并且里面提供了很多帮助指导,这都是 HTML,Javascript 和 CouchDB 的结晶。目前支持任何人在上面...

    CouchDB,Python

    CouchDB是一款开源的、基于文档的分布式数据库系统,它以JSON格式存储数据,并使用JavaScript作为查询语言。Python中的CouchDB模块是Python与CouchDB服务器交互的接口,允许开发者使用Python编写代码来操作CouchDB...

    brooklyn-example-hello-world-webapp-0.6.0-rc.2.zip

    在这个布鲁克林示例中,"hello-world-webapp"可能是一个简单的HTTP服务器,返回一个“Hello, World!”的响应,作为演示Brooklyn能力的起点。它展示了如何配置、启动和监控一个基本的Web服务,这在理解和学习Brooklyn...

    Fabric 1.4基于couchdb环境搭建

    Fabric 1.4基于couchdb环境搭建步骤,以及基于couchdb的区块链多字段数据查询

Global site tag (gtag.js) - Google Analytics