在 Apache 或 IIS 中托管时将 Backbone.js 与 CouchDB 连接
Posted
技术标签:
【中文标题】在 Apache 或 IIS 中托管时将 Backbone.js 与 CouchDB 连接【英文标题】:Connecting Backbone.js with CouchDB when hosting in Apache or IIS 【发布时间】:2012-10-11 23:35:21 【问题描述】:如果我要从 Apache Web 服务器或 IIS(而不是 node.js 或 couchApp)提供 html 和 js 文件,我无法理解如何将 Backbone.js 与 CouchDB 干净地连接起来。
我应该使用backbone.js CouchDB 扩展来抽象请求吗?如果有,是哪个?
我应该将 Backbone.js 直接连接到 CouchDB RESTful 接口还是应该使用 一个中间 php 层(因为我熟悉 PHP,但不熟悉 Java 或其他服务器端设置)?如果有,是哪个?
处理阻止我与数据库交互的“同源策略”的最佳方法是什么?
基本上,我想要一种整洁的方式,使用backbone.js 到GET
json 文档,从多个collections
按ID、ID 数组或所有ID。
同样从第二个管理网络界面,我需要能够通过id
更新、创建和删除
【问题讨论】:
【参考方案1】:我认为您不需要任何扩展来使用 CouchDB。
您需要做的主要事情是在所有模型中将idAttribute 设置为_id
。
另外,我建议您在 CouchDB 和您的客户端之间放置一个中间层。除非您的用例非常简单,否则您很快就会想在将文档发送给客户之前对其进行转换。如果您想坚持使用 CouchDB,您可以使用 PHP、Express 并使用 CouchApp。
如果您想彻底绕过 SOP,请查看 CORS,它现在已被大多数浏览器支持。
我对 PHP 不熟悉,但我用 Express 和 felix-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);
);
);
【讨论】:
你能推荐任何基本上只需要安装和配置的库吗?特别是对于 PHP,但也适用于(节点/快递)?【参考方案2】:我与https://cloudant.com/blog/backbone-and-cloudant/ 相处得非常好
【讨论】:
以上是关于在 Apache 或 IIS 中托管时将 Backbone.js 与 CouchDB 连接的主要内容,如果未能解决你的问题,请参考以下文章
选择使用 IIS 进行 WCF 服务托管或使用 Windows 服务进行自托管
我们啥时候应该在 IIS 中托管 WCF 服务,啥时候应该在 Windows 服务中托管?