J'ai une fonction de liste qui peut être accessible comme ceci:Comment utiliser un nom d'utilisateur CouchDB dans une réécriture d'URL?
_list/characters/characters_by_user?startkey=["org.couchdb.user:rodriguez"]&endkey=["org.couchdb.user:rodriguez", {}]
Je tente de réécrire l'URL afin que vous puissiez y accéder de manière conviviale ...
/rodriguez/characters
.. .en écrit cette règle:
{from: '/:user/characters', to: '_list/characters/characters_by_user',
query: {
startkey: "[%22org.couchdb.user%3A:user%22]",
endkey: "[%22org.couchdb.user%3A:user%22,%20{}]"
}
}
Cependant, je reçois cette erreur:
error: "query_parse_error",
reason: "No rows can match your key range, reverse your start_key and end_key or set descending=true"
Pourquoi la requête fonctionnerait correctement dans l'URL complète, mais n'utiliserait pas la réécriture?
Mise à jour
Je crois que ce peut être un bug avec la façon dont CouchDB gère le côlon codé (% 3A). J'attends une réponse de la liste de diffusion et mettra à jour cette question en conséquence.
Hmmm ... Je ferai de mon mieux pour aider à diagnostiquer, mais je suis pas certain sur une réponse. Il est très possible qu'il y ait une erreur dans la réécriture, et quoi que ce soit en train de réécrire pour produire l'erreur que vous voyez. Cela étant dit, pourquoi y at-il un deux-points ici "{from: '/: user/characters'". Aussi, as-tu essayé de sortir ces% 2f? Courez-vous ceci sur CouchDB 1.2? – Costa
Aussi, peut-être juste essayer? Key = "org.couchdb.user: rodriguez" – Costa
Je suis d'accord, Il semble certainement qu'il y ait une erreur sur la réécriture. Comment est-ce que je vois ce qu'il réécrit? Y at-il quelque chose sur les outils de développement Chrome ou un moyen de le sortir sur la console? Le deux-points est là pour représenter une variable, comme indiqué ici http://wiki.apache.org/couchdb/Rewriting_urls. J'ai essayé avec et sans l'encodage d'URL, et reçois le même résultat (bien que je doive utiliser l'encodage pour représenter le deux-points dans org.couchdb.user: nom d'utilisateur car je ne peux pas l'échapper dans la chaîne). J'utilise CouchDB 1.1.1. –