【发布时间】:2010-03-17 11:30:47
【问题描述】:
我正在尝试在 CouchDB 上设置以下视图
{
"_id":"_design/id",
"_rev":"1-9be2e55e05ac368da3047841f301203d",
"language":"javascript",
"views":{ "by_id":{
"map" : "function(doc) { emit(doc.id, doc)}"
},"from_user_id":{
"map" : "function(doc) { if (doc.from_user_id) {emit(doc.from_user_id, doc)}}"},
"from_user":{
"map" : "function(doc) { if (doc.from_user) {emit(doc.from_user, doc)}}"},
"to_user_id":{
"map" : "function(doc) {if (doc.to_user_id){ emit(doc.to_user_id, doc)}}"},
"to_user":{
"map" : "function(doc) {if (doc.to_user){ emit(doc.to_user, doc)}}" },
"max_id":{
"map" : "function(doc) { if (doc.id) {emit(doc._id, eval(doc.id))}}",
"reduce" :"function(key,value) { a = value[0]; for (i=1; i <value.length; ++i){a = Math.max(a,value[i])} return a}"
}
}
}
当我尝试使用 curl 'PUT' 时:
curl -X PUT -d keys.json $CDB/_design/id
{"error":"bad_request","reason":"invalid UTF-8 JSON"}
我知道它不是无效的 JSON,因为我使用 Python 2.6 中内置的“json”库对其进行了测试,它可以正常加载。 JS 搞砸了给我错误“必须评估一个函数”
我用 od 检查了文件,没有隐藏的控制字符,我的系统设置为 UTF-8。我正在使用 CouchDB 0.10.1 版
还有什么问题?
【问题讨论】:
-
keys.json 是否可以使用 UTF-16 或 UCS-2 等 16 位编码进行编码?
-
仅供参考,您的 JSON 在 Chrome、Internet Explorer 和 Firefox 中解析得很好。
-
@Joachim_Sauer 文件keys.json,显示为'ascii text',如果用'od -c'检查没有恐怖控制字符,我的系统默认为utf-8,我很困惑
-
curl -v 有帮助,因为它会转储发送到服务器的实际请求
标签: javascript views couchdb