0

我正在使用 nano 通过 node.js 连接到 couchDB;我已经阅读了 couch.db 的基本文档并且大部分都理解了它,但是我在任何地方都没有看到简单的查询功能。我想做的就是(从我的服务器)从特定文档中获取字段的值。我该怎么做?

此外,在寻找这个问题的答案时,我遇到了一个网站,它说 html 页面可以直接向数据库发送 GET 以获取值;我认为数据库是安全的,那么这怎么可能呢?我想我在这里错过了一些大事。

4

1 回答 1

0

通过 id 获取特定文档的最简单方法是使用 get 方法。这将返回文档本身:

var Nano = require('nano'),
    db = new Nano('http://admin:password@localhost:5984').use(yourDatabase),

db.get(yourDocumentId, function (err, yourDocument, headers) {
  return console.log(err || yourDocument);
  });

关于直接从 CouchDB 请求数据的网页的第二个问题:只要您在 CouchDB 中专门为最终用户登录,就可以安全地完成此操作。您的最终用户将登录到 CouchDB 并且 CouchDB 将返回一个 cookie,您的浏览器将在每个后续请求中将其发送给 CouchDB 作为一种身份验证方式。有关详细信息,请参阅http://guide.couchdb.org/editions/1/en/security.html#cookies

就我个人而言,我不会使用这种方法,因为它很容易将您的 UI 与您的数据耦合起来,从而使未来的更改变得更加困难。我建议在 express 中创建一个 REST api 并从您的 UI 中调用它。它将使您的 UI 代码更加专注于 UI 逻辑,而您的 api 实现则专注于处理 CouchDB 文档和视图操作。

于 2012-12-11T02:00:01.440 回答