CouchDB/Sofa:无法使用保存按钮创建新帖子(从默认模板)
Posted
技术标签:
【中文标题】CouchDB/Sofa:无法使用保存按钮创建新帖子(从默认模板)【英文标题】:CouchDB/Sofa: Cannot create new post (from default template) with save button 【发布时间】:2014-10-16 19:44:47 【问题描述】:我目前正在学习 CouchDB,并使用 O'Reilly 的书作为入门指南。我一直在非常彻底地关注它,但是,在使用沙发时,这本书要求我检查当我们在编辑模板上点击“保存”时会发生什么。这本书说我应该看到一个成功的响应(使用 Firebug 按钮触发了 Put 请求),但是,我得到了一个“
"error":"not_found","reason":"missing shows function new.html on design doc _design/sofa""
现在我这周才开始阅读,我知道答案可能很明显,但如果有人至少能指出我正确的方向(在 Sofa 中添加的位置、修复错误、补丁),那就太好了。
我最初的猜测是我需要添加一个“新的”节目功能,但在我深入研究这个疯狂的追逐之前我只是想要一些建议。
对不起,如果这是一个菜鸟问题。
"couchdb":"Welcome","uuid":"4d9b6082e16607a33dcbfdffb57503b5","version":"1.6.1","vendor":"version":"1.6.1","name":" Apache 软件基金会"
从(https://github.com/jchris/sofa)下载了最新版的沙发
【问题讨论】:
【参考方案1】:如何解决问题
问题是该页面是从以下位置访问的:
http://127.0.0.1:5984/myblogdb/_design/sofa/_show/edit
从以下位置访问它:
http://127.0.0.1:5984/myblogdb/_design/sofa/_show/edit/
(您的数据库名称可能与“myblogdb”不同)。注意尾部的反斜杠。
解释为什么不需要名为“new”的显示函数:
对 show 函数执行以下查询:
http://127.0.0.1:5984/myblogdb/_design/sofa/_show/edit/This-is-a-second-post
这将调用edit.js 中的函数并传入带有_id
或This-is-a-second-post
的文档(如果存在这样的文档)。如果文档不存在,如
http://127.0.0.1:5984/myblogdb/_design/sofa/_show/edit/new.html
然后 edit.js 设置传递给 Mustache.to_html
的 data
对象,以便为新帖子提供正确的字段。
为什么它会在你的情况下中断
当编辑显示功能通过
访问时http://127.0.0.1:5984/myblogdb/_design/sofa/_show/edit
脚本的相对路径不再起作用。 那么edit.html中定义的脚本就不再正确了。 结果,提交处理程序
$("form#new-post").submit(function() ...
不再被调用。如果它被调用,它会在最后return false
,这会阻止 new.html 被发布。
由于它没有被调用,new.html 最终被 POST,并将浏览器重定向到
http://127.0.0.1:5984/myblogdb/_design/sofa/_show/new.html
它指向一个不存在的显示功能,导致您看到的错误消息。
【讨论】:
以上是关于CouchDB/Sofa:无法使用保存按钮创建新帖子(从默认模板)的主要内容,如果未能解决你的问题,请参考以下文章