Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CouchDB/Sofa:无法使用保存按钮创建新帖子(从默认模板)_Couchdb_Couchapp - Fatal编程技术网

CouchDB/Sofa:无法使用保存按钮创建新帖子(从默认模板)

CouchDB/Sofa:无法使用保存按钮创建新帖子(从默认模板),couchdb,couchapp,Couchdb,Couchapp,我目前正在学习CouchDB,并使用O'Reilly的书作为入门指南。我一直在非常彻底地关注它,然而,在使用Sofa时,这本书要求我检查当我们在编辑模板上点击“保存”时会发生什么。这本书说我应该看到一个成功的响应(使用Firebug按钮触发Put请求),然而,我得到的却是一个“ {“error”:“not_found”,“reason”:“missing”在设计文档_design/sofa“}上显示函数new.html” 现在我这周才开始阅读,我知道答案可能是显而易见的,但如果有人至少能给我指出

我目前正在学习CouchDB,并使用O'Reilly的书作为入门指南。我一直在非常彻底地关注它,然而,在使用Sofa时,这本书要求我检查当我们在编辑模板上点击“保存”时会发生什么。这本书说我应该看到一个成功的响应(使用Firebug按钮触发Put请求),然而,我得到的却是一个“

{“error”:“not_found”,“reason”:“missing”在设计文档_design/sofa“}上显示函数new.html”

现在我这周才开始阅读,我知道答案可能是显而易见的,但如果有人至少能给我指出正确的方向(在沙发上添加,修复bug,补丁),那就太好了

我最初的猜测是,我需要添加一个“新”的shows函数,但我只是想在深入研究这一问题之前得到一些建议

对不起,如果这是一个noob问题


{“couchdb”:“欢迎”,“uuid”:“4d9b6082e16607a33dcbfdffb57503b5”,“版本”:“1.6.1”,“供应商”:{“版本”:“1.6.1”,“名称”:“Apache软件基金会”}

从()下载了最新版本的Sofa

如何解决此问题 问题在于,该页面是从以下位置访问的:

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函数: 对show函数执行以下查询:

http://127.0.0.1:5984/myblogdb/_design/sofa/_show/edit/This-is-a-second-post
这将调用edit.js中的函数,并以
This-is-a-second-post
\u id
传入文档(如果存在此类文档)。如果文档不存在,例如

http://127.0.0.1:5984/myblogdb/_design/sofa/_show/edit/new.html
然后edit.js设置传递给
Mustache.to_html
数据
对象,以便为新帖子提供正确的字段

为什么它会在你的案件中破裂 当通过访问编辑显示功能时

http://127.0.0.1:5984/myblogdb/_design/sofa/_show/edit
脚本的相关路径不再工作。 然后,edit.html中定义的脚本不再正确。 因此,提交处理程序

$("form#new-post").submit(function() { ...
不再被称为。如果调用它,它将
在最后返回false
,这将阻止new.html被发布

由于未调用new.html,因此new.html最终会被发布,从而将浏览器重定向到

http://127.0.0.1:5984/myblogdb/_design/sofa/_show/new.html
它指向一个不存在的show函数,导致您看到的错误消息