2012-01-27 15 views
7

utilizo couchdb 1.1.1 en Debian testingcouchdb: mapa en el documento de diseño da compilation_error

y tengo este documento de diseño de la base de datos

{ 
"_id": "_design/Page", 
"_rev": "9-1944cdebabf20ae569eab7b534b43e67", 
"views": { 
    "all": { 
     "map": "function(doc) {}" 
    } 
}, 
"language": "javascript" 
} 

pero todavía me puedo poner en http://localhost:5984/db_development/_design/Page/_view/all

este {"error":"compilation_error","reason":"Expression does not eval to a function. ((new String(\"function(doc) {}\")))"}

me trataron de ejecutar diferentes funciones mapa sencillo en intérprete spidermonkey-bin y que se cargó correctamente, pero sam e error en couchdb

Realmente no puedo ver, dónde problema es ....

Ok, en la lista de correo He descubierto que se necesita para envolver función a los paréntesis "()", porque algo tiene cambiado de nuevo spidermonkey

Así función de mapa tiene el siguiente aspecto: "map": "(function(doc) { emit([doc._id, doc._rev]);})"

Respuesta

10

Ok, en la lista de correo He encontrado que es necesaria para la función a los paréntesis wrap "() ", porque algo ha cambiado en la nueva spidermonkey

Así mapa de funciones es el siguiente: "mapa": "(función (doc) {emiten ([doc._id, doc._rev]);})"

+1

que acaba de guardar el día para mí, Ivan. ¡Gracias! –

-3

no hay ninguna sentencia return dentro de la función de mapa. Su función de mapa necesita devolver algo.

Si necesita obtener un volcado prima de todos los documentos, no es una característica incorporada para ello: http://wiki.apache.org/couchdb/HTTP_Document_API#all_docs

+0

Puedo cambiarlo a "function (doc) {emit (doc._id, doc._rev)}" o una función más compleja pero sigue siendo el mismo error –

+1

-1 porque la respuesta es simplemente incorrecta. funciones mapa couchdb no tienen que devolver nada, más aún, las funciones javascript no tienen que devolver nada a ser funciones válidas de todos modos. – hasen

0

Si recibe este error, tenga cuidado de que el documento de diseño está estructurado correctamente. (Tengo un mensaje de este tipo debido a un error tonto en mi definición shows.)

Además, no es seguro que esto es un problema, pero no creo que debe haber un espacio antes de los corchetes en la definición de función .

Cuestiones relacionadas