从Node.js和CouchDB开始,没有像纳米或摇篮库

可能重复:
尝试从Node.js插入文档到CouchDB时,出现“bad_request invalid_json”错误

CouchDB和Node.js的最高票数答案- 你推荐哪个模块? build议不要使用像Node.js和CouchDB一样的库(如nano或cradle)。

但是,我还没有find任何教程如何执行标准操作为所有DBMS如创build数据库,创build表,添加和查看数据等编程。

编辑:(部分回答)安装和启动CouchDB后去http://localhost:5984/_utils/script/couch.js

您应该先阅读CouchDB书籍 。

不知道为什么你不想使用一个模块:我认为你的背景是一个回答(答案可能是一年),并决定不使用一个模块。

这不太可能有助于完成任务。 :)你只是重复已完成的工作,已经修复的问题等

如果您想学习CouchDB,请阅读本书。 您可以阅读nano的源代码,因为它非常接近API,应该很容易阅读,但这本书是完整的方式。

如果由于某种原因,你决定你仍然想要实现你自己的模块来做别人已经做好的事,那就去吧:)

如果您正在寻找有关使用nano的资源,那么有很多:

  • 自述文件: github
  • 截屏: couchdb和nano
  • 文章: nano – 一个极简主义的nodejs couchdb客户端
  • 文章: 开始使用node.js和couchdb
  • 文章: 文档更新处理程序支持
  • 文章: 纳米3
  • 文章: 使用node.js和nano保护一个使用couchdb cookieauthentication的站点
  • 文章: 添加到纳米的副本
  • 文章: 如何用nano更新文档
  • 文章: 使用nock和指定在node.js模拟HTTP集成testing
  • 文章: 用nock和tap模拟testingnode.js中的couchdb

感谢Ruben Verborgh ,我自己编译了几个来源的微型教程。

 var http = require('http') var sys = require('sys') var couchdbPath = 'http://localhost:5984/' request = require('request') h = {accept: 'application/json', 'content-type': 'application/json'} request( {uri: couchdbPath + '_all_dbs', headers:h}, function(err, response, body) { console.log(sys.inspect(JSON.parse(body))); } ) // add database request( {uri: couchdbPath + 'dbname', method:'PUT', headers:h}, function (err, response, body) { if (err) throw err; if (response.statusCode !== 201) throw new Error("Could not create database. " + body); } ) // Modify existing document var options = { host: "localhost", port: 5984, path: "/dbname", headers: {"content-type": "application/json"}, method: "PUT" }; var req = http.request(options, function(res) { console.log('STATUS: ' + res.statusCode); //console.log('HEADERS: ' + JSON.stringify(res.headers)); res.setEncoding('utf8'); res.on('data', function (chunk) { console.log('BODY: ' + chunk); }); }); req.on('error', function(e) { console.log('problem with request: ' + e.message); }); // write data to request body req.write(JSON.stringify({ "_id":"rabbit", "_rev":"4-8cee219da7e61616b7ab22c3614b9526", "Subject":"I like Plankton" })); req.end(); 

我使用了以下文件:

  • http.request()
  • CouchDB完整的HTTP API参考

这里有几个实际操作的例子,想法和代码片段,这些应该有助于你的学习

简单的博客与Coffeescript,Express和CoudbDB

使用CouchDB和Nodejs进行开发的思考

绑定CouchDB和Node.js

Node.js,Express和CouchDB入门 – 现在这个链接似乎不可访问,但似乎是一个暂时的问题。

这里有一个testingCouchDB的 – 使用Node.js模拟testingCouchDB

希望能帮助到你。

CouchDB不是一个SQL数据库引擎。 这是在“NoSQL”的家庭。

你不做select,你不创build表等

它完全不同。

它实际上使用REST API来工作。 就像要访问所有文档一样,您可以通过以下URL使用HTTP GET来访问它们: http://some.server/someDbName/_all_docs

为了更彻底的介绍,我build议在Google上寻找“CouchDB教程”。

你会find像这个或这个好链接。 (我没有任何担保,他们只是作为一个介绍看起来不错。)

要在node.js中创buildhttp请求,可以使用内置http模块的request方法。 一个快捷方式是http.get ,你可以这样使用:

 var http = require( 'http' ); http.get( 'http://some.url/with/params', function( res ) { // res has the values returned }); 

阅读你的代码后编辑:

首先,你使用的文件,如果过时。 节点在v0.8,而不是0.4。

其次,你的request = require('request')必须给出一些问题(模块是否存在?)。 我不认为第一部分甚至被执行。

第三,现在只需尝试GET请求。 就像是:

 var http = require( 'http' ); http.get( 'http://localhost:5984/_all_dbs', function( res ) { console.log( res ); }); 

看看它是否工作。 如果是这样,你已经知道如何使用couchdb;)

最后,你的要求在最后似乎没有错。 也许这是相关的require('request') ,所以我不知道。