我在Debian测试中使用Couchdb 1.1.1
我在数据库中有这个设计文档
{
"_id": "_design/Page",
"_rev": "9-1944cdebabf20ae569eab7b534b43e67",
"views": {
"all": {
"map": "function(doc) {}"
}
},
"language": "javascript"
}
Run Code Online (Sandbox Code Playgroud)
但我仍然进去 http://localhost:5984/db_development/_design/Page/_view/all
这个 {"error":"compilation_error","reason":"Expression does not eval to a function. ((new String(\"function(doc) {}\")))"}
我试图在spidermonkey-bin解释器中运行不同的简单映射函数,并且它们已正确加载,但在couchdb中也出现相同的错误
我真的看不到,问题出在哪里....
好吧,在邮件列表中我发现需要将函数包装到括号"()"中,因为更新的spidermonkey中的某些内容已经发生了变化
因此map函数如下所示: "map": "(function(doc) { emit([doc._id, doc._rev]);})"
我想验证0-255范围内的数字
我有这个表达
'/^([0-1]?[0-9]?[0-9])|([2][0-4][0-9])|(25[0-5])$/'
Run Code Online (Sandbox Code Playgroud)
但这接受任何数字......这有效:
'/(^[0-1]?[0-9]?[0-9]$)|(^[2][0-4][0-9]$)|(^25[0-5]$)/'
Run Code Online (Sandbox Code Playgroud)
为什么我必须为每个选项都有^和$?
编辑:我有,但我无法回答我的问题,所以 - ^并且$优先级高于|,所以/^(...)$/帮助
1.9.3-p194 :012 > b=[1,2,3];b.instance_variable_set :@internal, "rrr";
b.define_singleton_method :xx do; @internal; end
=> #<Proc:0x000000020f3d20@(irb):12 (lambda)>
1.9.3-p194 :013 > b
=> [1, 2, 3]
1.9.3-p194 :014 > b.xx
=> "rrr"
1.9.3-p194 :015 > b.define_singleton_method :"xx=(val)" do; @internal=val; end
=> #<Proc:0x0000000254aec8@(irb):15 (lambda)>
1.9.3-p194 :017 > b.xx="yy"
NoMethodError: undefined method `xx=' for [1, 2, 3]:Array
from (irb):17
from /home/sir/.rvm/rubies/ruby-1.9.3-p194/bin/irb:16:in `<main>'
Run Code Online (Sandbox Code Playgroud)
我想要编写例如变量,但它不起作用.我究竟做错了什么?