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","re​​ason":"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 中的函数并传入带有_idThis-is-a-second-post 的文档(如果存在这样的文档)。如果文档不存在,如

http://127.0.0.1:5984/myblogdb/_design/sofa/_show/edit/new.html

然后 edit.js 设置传递给 Mustache.to_htmldata 对象,以便为新帖子提供正确的字段。

为什么它会在你的情况下中断

当编辑显示功能通过

访问时
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:无法使用保存按钮创建新帖子(从默认模板)的主要内容,如果未能解决你的问题,请参考以下文章

保存动态创建的按钮android

使用沙发和沙发应用程序的分析计数器

网站新文章全自动监控工具 支持 『论坛贴吧』等新帖提醒

Python创建保存按钮,将编辑的版本保存到同一个文件(不另存为)

处理3.0科泰相机。图片无法保存

在 大家的做题热情实在是高 故开新帖继续做题 中 的 回复