Url rewriting 用CouchDB重写URL

Url rewriting 用CouchDB重写URL,url-rewriting,couchdb,Url Rewriting,Couchdb,我正在构建我的第一个CouchApp(一个简单的博客引擎),以便了解更多关于它的信息。现在,我已将其工作到以下URL返回博客帖子的程度: http://127.0.0.1:5984/couchblog/_design/couchblog/_list/index/posts 我有一个名为posts的视图来返回我的帖子,还有一个名为index的列表来呈现帖子。所以我想我的下一步是将URL重写为更友好的内容。不幸的是,我似乎有点含糊不清,我似乎什么都做不到 我的设计文档的“重写”部分如下所示: re

我正在构建我的第一个CouchApp(一个简单的博客引擎),以便了解更多关于它的信息。现在,我已将其工作到以下URL返回博客帖子的程度:

http://127.0.0.1:5984/couchblog/_design/couchblog/_list/index/posts
我有一个名为
posts
的视图来返回我的帖子,还有一个名为
index
的列表来呈现帖子。所以我想我的下一步是将URL重写为更友好的内容。不幸的是,我似乎有点含糊不清,我似乎什么都做不到

我的设计文档的“重写”部分如下所示:

rewrites: [{
    from: '../../../',
    to: '/_list/index/posts',
    method: 'GET',
    query: ''
}],
我想重写它,这样它就可以从web服务器根目录中提供博客文章列表,但我似乎无法使用它。有人能看出我做错了什么吗?我通过自制在OS X Snow Leopard上使用CouchDB 1.6.0

我想重写它,这样它就可以从web服务器根目录提供博客文章列表

我认为您需要在couchdb配置中为此配置vhosts设置。这一点在本文中有很好的介绍,因此我将在这里发布相关部分:-

要添加虚拟主机,请为域名添加指向DNS的CNAME指针。对于开发和测试,在主机文件中添加一个条目就足够了,在类Unix操作系统上通常是/etc/hosts`

测试此功能是否正常工作:

最后,在[vhosts]*部分的配置文件中添加一个条目:

如果CouchDB正在默认HTTP端口(80)上侦听,或者位于代理之后,则不需要在vhost密钥中指定端口号

*顺便说一句,你也可以用蒲团做这个。只需确保在配置vhosts部分后重新启动couchdb。其他明智的改变不会产生任何效果

然而,对于我们的例子,我们需要将vhosts部分映射到数据库上的重写处理程序。所以我们的虚拟主机看起来像这样:-

couchdb.local:5984 = your-db/_design/your-design/_rewrite 
修改您的倒带处理程序以及

rewrites: [{
    from: 'index',
    to: '/_list/index/posts',
    method: 'GET',
    query: ''
}]
现在,如果您向

couchdb.local:5984/索引


你应该看到一个帖子列表

你能提供一些关于什么不起作用的细节吗?我有127.0.0.3端口80上的开发couchdb。这样我就不必在url中指定端口。只需将/etc/hosts设置为
127.0.0.3 mycouchapp
。您知道关于重写的更好的文档吗。我曾经是这里的一员,但现在遇到了另一个问题,我看到有一个新的重写函数,但这也没有很好的文档记录(我可以同时使用这两种机制吗,如何使用新的机制等等)
[vhosts]
couchdb.local:5984 = /example
*.couchdb.local:5984 = /example
couchdb.local:5984 = your-db/_design/your-design/_rewrite 
rewrites: [{
    from: 'index',
    to: '/_list/index/posts',
    method: 'GET',
    query: ''
}]