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集成在一起,用于实现一个...
Ruby CouchDB Ruby gem,用于连接到Ruby中的CouchDB数据库,重点是批量请求。 确保观看Tim Anglade的精彩演讲。 安装 将此行添加到应用程序的Gemfile中: gem 'couch-db' 然后执行: $ bundle 或将其自己安装为...
5. **简单易用**:CouchDB的设计理念之一就是简单直观,即使是初学者也能快速上手。 6. **高可用性**:CouchDB支持多副本机制,确保了数据的安全性和系统的可靠性。 #### 三、CouchDB的基础架构 CouchDB的架构主要...
awesome-couchdb, CouchDB精选元资源&最佳实践列表 出色的CouchDB 面向CouchDB的curated元资源&最佳实践列表。是一个面向文档的面向服务的数据库,它同步。欢迎请求请求。电子邮件内容模式&最佳实践。Map/Reduce连接...
首先,书中介绍了CouchDB的基本概念,通过对比传统的关系型数据库系统,揭示了CouchDB的独特之处,如分布式、文档导向和基于JSON的数据存储。此外,书中还简述了CouchDB的发展历程,并列举了它相对于其他数据库系统...
学习couchDB 的入门教程
Apache CouchDB是一个开源的、基于文档的分布式数据库系统,它采用了JSON作为数据格式,并使用JavaScript进行查询和数据处理。在2.3.1版本中,CouchDB继续提供了一流的可扩展性和灵活性,适用于各种应用程序,特别是...
CouchDB是一款开源的文档数据库管理系统,以其独特的JSON数据模型、RESTful API和分布式系统设计而闻名。在深入探讨CouchDB源码之前,我们首先理解CouchDB的基本概念和工作原理。 CouchDB的核心是基于JSON...
couch_potato, 用于CouchDB的ruby 持久层 沙发土豆。是用 ruby 编写的用于CouchDB的持久层。 从 1.x-升级到 2.x本版 1.x 猴修补 Date#to_json ( =>"2015/01/01") 和 Time#to_json ( =&
CouchDB的设计目标之一是易于复制和扩展,这意味着可以在多个服务器之间轻松地同步数据。此外,CouchDB支持版本控制,能够追踪每个文档的历史变更记录。 ### 数据模型与存储机制 在CouchDB中,数据是以文档的形式...
多版本并发控制(MVCC)是CouchDB的显著特点之一,它允许多个节点进行写操作,而系统会自动检测并解决多个操作之间的冲突。这一特性使得CouchDB非常适合需要并发读写操作的应用场景。 CouchDB支持水平扩展性,这...
通过《CouchDB权威指南》,你将学会如何通过CouchDB的RESTful Web接口来使用它,此外你还会熟悉CouchDB的一些主要特性,比如简单的文档的CRUD(创建、读取、更新、删除); 高级的MapReduce,部署优化等更多的内容...
sofa-CouchDB 是 CouchDB 的独立博客,使用 CouchDB 的书来做主要内容,这方便了所有用来在这博客上交流他们的想法,并且里面提供了很多帮助指导,这都是 HTML,Javascript 和 CouchDB 的结晶。目前支持任何人在上面...
CouchDB是一款开源的、基于文档的分布式数据库系统,它以JSON格式存储数据,并使用JavaScript作为查询语言。Python中的CouchDB模块是Python与CouchDB服务器交互的接口,允许开发者使用Python编写代码来操作CouchDB...
在这个布鲁克林示例中,"hello-world-webapp"可能是一个简单的HTTP服务器,返回一个“Hello, World!”的响应,作为演示Brooklyn能力的起点。它展示了如何配置、启动和监控一个基本的Web服务,这在理解和学习Brooklyn...
Fabric 1.4基于couchdb环境搭建步骤,以及基于couchdb的区块链多字段数据查询