0

如果我要从 Apache Web 服务器或 IIS(不是来自 node.js 或 couchApp)提供 ​​html 和 js 文件,我无法理解如何干净地将 Backbone.js 与 CouchDB 连接起来。

我应该使用backbone.js CouchDB 扩展来抽象请求吗?如果是这样?

我应该将 Backbone.js 直接连接到 CouchDB RESTful 接口,还是应该使用中间 PHP 层(因为我熟悉 PHP,但不熟悉 Java 或其他服务器端设置)?如果是这样?

处理阻止我与数据库交互的“同源策略”的最佳方法是什么?

基本上,我想要一种整洁的方式,使用backbone.js 来GET从多个collectionsby id、一组id 或所有id 中生成json 文档。另外,从第二个管理 Web 界面,我需要能够通过以下方式更新、创建和删除id

4

2 回答 2

2

我认为您不需要任何扩展来使用 CouchDB。

您需要做的主要事情是在您的所有模型中设置idAttribute_id

另外,我建议您在 CouchDB 和您的客户端之间放置一个中间层。除非您的用例非常简单,否则您很快就会想在将文档发送给客户之前对其进行转换。如果你想坚持使用 CouchDB,你可以使用 PHP、Express 和CouchApp来做到这一点。

如果您想彻底绕过 SOP,请查看现在大多数浏览器都支持的CORS 。

我不熟悉 PHP,但这是我使用Expressfelix-couchdb 的方法:

var couchdb = require('felix-couchdb'),
    client = couchdb.createClient(config.port, config.host),
    myDb = client.db('my_db');

// (... express boilerplate)
app.get('/resource/:resource_id', function (req, res) {
  myDb.getDoc(req.params.resource_id, function (err, doc) {
    if(err)
      return res.send(err);

    res.send(doc);
  });
});
于 2012-10-12T09:08:55.693 回答
0

我在https://cloudant.com/blog/backbone-and-cloudant/上运气很好

于 2013-02-06T21:57:30.507 回答