couchDB学习笔记
couchDB是一个非常易用的nosql数据库,到官网下载安装并启动它,然后新建一JS文件:
var http = require( 'http' ); var options = { port: 5984, method: 'GET' , // path:"/_all_dbs" }; //这个回调果真只有一个参数,即http.createServer(function(req, res) {}) var req = http.request(options, function (res) { console.log( 'STATUS: ' + res.statusCode); console.log( 'HEADERS: ' + JSON.stringify(res.headers)); res.setEncoding( 'utf8' ); var body = "" res.on( 'data' , function (chunk) { body += chunk }); res.once( "end" , function (){ var json = JSON.parse(body); console.log(json) }) }); req.end() req.on( 'error' , function (e) { console.log( 'problem with request: ' + e.message); }); |
然后用node.js打开它!控制台输出如下消息,表示成功:
STATUS: 200 HEADERS: { "server" : "CouchDB/1.2.0 (Erlang OTP/R14B04)" , "date" : "Fri, 24 Aug 2012 02:53:18 GMT" , "content-type" : "text/plain; charset=utf-8" , "content-length" : "40" , " cache-control" : "must-revalidate" } { couchdb: 'Welcome' , version: '1.2.0' } |
然后我们修改一下上面的options对象,查看里面已经有多少个数据库
var options = { port: 5984, method: 'GET' , path: "/_all_dbs" }; |
会输出一个数组
[ '_replicator' , '_users' ] |
创建一个数据库,为PUT请求,path为数据库名
var options = { port: 5984, method: 'PUT' , path: "/aaa" }; |
输出ok=true表示成功
{ ok: true } |
注,不能重复创建相同数据库,我们试再发一次上面的请求,会返回上面请求
{ error: 'file_exists' , reason: 'The database could not be created, the file already exists.' } |
删除一个数据库就用DELETE请求,path为数据库名
var options = { port: 5984, method: 'DELETE' , path: "/aaa" }; |
在一个数据库内插入一条记录,因为上面的aaa被我们删掉了, 我们就再搞个albums
var options = { port: 5984, method: 'PUT' , path: "/albums" }; |
插入新记录,记录在nosql数据库大多数称之为文档.它要求有一个UUID,你就随便造一个吧
var http = require( 'http' ); //创建一个名为baseball的数据库 var options = { port: 5984, method: 'PUT' , path: "/albums/1" }; var req = http.request(options, function (res) { console.log( 'STATUS: ' + res.statusCode); console.log( 'HEADERS: ' + JSON.stringify(res.headers)); res.setEncoding( 'utf8' ); var body = "" res.on( 'data' , function (chunk) { body += chunk }); res.once( "end" , function (){ var json = JSON.parse(body); console.log(json) }) }); req.setHeader( "Content-Type" , "application/json" ) //这时请补上文档内容 req.write(JSON.stringify({ "title" : "There is Nothing Left to Lose" , "artist" : "Foo Fighters" })) req.end() req.on( 'error' , function (e) { console.log( 'problem with request: ' + e.message); }); |
当然,上面这样搞出来的UUID太不安全了,因此你可以利用couthDB给你的UUID
var options = { port: 5984, method: 'GET' , path: "/_uuids" }; |
我们再把刚才保存的文档取出来吧,就是数据库加ID名,GET请求
var options = { port: 5984, method: 'GET' , path: "/albums/1" }; |
如果您觉得此文有帮助,可以打赏点钱给我支付宝1669866773@qq.com ,或扫描二维码


机器瞎学/数据掩埋/模式混淆/人工智障/深度遗忘/神经掉线/计算机幻觉/专注单身二十五年
标签:
node.js
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
2009-08-24 javascript 鼠标事件总结
2009-08-24 javascript命名空间的简单实现