2016-12-02 74 views
0

努力学习在CouchDB视图,从书,但我一直碰到这个问题来了,由于某种原因,这是一个坏请求是无效的JSON:的CouchDB返回无效的Json

{ 
    "_id" : "_design/example", 
    "language" : "javascript", 
    "views" : { 
    "foo" : { 
     "map" : "function(doc) { if (doc.date && doc.title) { emit(doc.date, doc.title);}}" 
    } 
    } 
} 

然而,这是精细:

{ 
    "_id": "_design/tyres_used", 
    "language": "javascript", 
    "views": { 
    "tyres": { 
      "map": "function(doc) { if(doc.tyres && doc.client) {\n emit(doc.tyres, doc.client);\n} \n}" 
    } 
    } 
} 

我当时可以上传文档的唯一方法是改变从第一,然后它会在词的第二个脚本我不知道我放在了第一位,虽然得到做它工作。

道歉,如果这看来出错了,我从来没有做过此块报价。

+0

才能有“错误您收到”? –

+0

嗨,是的,这里是完整的命令行交互 pi @ raspberrypi:〜$ curl -X PUT http://127.0.0.1:5984/views_testing/_design/example -d @ example.json Warning:Could not read来自文件“example.json”的数据,这会产生一个空的 警告:POST。 {“error”:“bad_request”,“reason”:“invalid_json”}我不知道如何正确格式化为回复对不起。 – iFunction

回答

1

您收到的第一个错误是因为cURL找不到该文件。确保文件位于执行命令的同一目录中,以指定文件的相对/绝对路径。

接下来,您将遇到内容类型错误。您需要指定要发送的数据类型来CouchDB.To指定与卷曲的JSON Content-type头,请执行下列操作:

curl -X PUT 127.0.0.1:5984/views_testing/_design/example -d @example.json -H "Content-type: application/json"

+0

我很害怕这个,得到同样的错误。我认为这是与文件有关的事情,因为我可以修改一个可以工作并且会上传的文件,但我不会一直使用这台特定的计算机来加载这个文件,所以这是相当不切实际的 – iFunction

+0

那么,文件是执行该命令的目录是相同的?如果运行** ls **命令,您会看到example.json文件正确吗? –

+0

我需要道歉,我已经解决了这个问题,这是一个学校男孩的错误,但希望它会帮助别人,我没有在我上传的文件所在的目录中,所以它正在寻找一个文件那里。感谢您的意见,这让我觉得正确。 – iFunction