couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Dingwall (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (COUCHDB-1202) Function 'require' undefined in reduce functions, cannot require CommonJS module
Date Mon, 17 Mar 2014 13:36:43 GMT

    [ https://issues.apache.org/jira/browse/COUCHDB-1202?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13937800#comment-13937800
] 

James Dingwall commented on COUCHDB-1202:
-----------------------------------------

The ability to require() in reduce functions still seems to be broken in CouchDB 1.5.0.  Is
this an oversight of this bug or is there a good reason not to support require() in reduce
and this should be closed as won't fix?

[Mon, 17 Mar 2014 13:27:51 GMT] [info] [<0.5226.0>] OS Process #Port<0.7704> Log
:: function raised exception (new ReferenceError("require is not defined", "undefined", 11))


> Function 'require' undefined in reduce functions, cannot require CommonJS module
> --------------------------------------------------------------------------------
>
>                 Key: COUCHDB-1202
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1202
>             Project: CouchDB
>          Issue Type: Bug
>          Components: JavaScript View Server
>    Affects Versions: 1.1
>         Environment: Mac OS X 10.6.8, CouchDB 1.1.0 (homebrew), Erlang R14B03
>            Reporter: Gabor Ratky
>            Priority: Minor
>              Labels: commonjs, reduce, views
>         Attachments: reduce_lib.patch
>
>
> CouchDB 1.1.0 views can require CommonJS modules according to the Modules 1.1.1 specification
when defined in the design document under "views/lib". In CouchDB 1.1.0 this works in map
functions, but the "require" is undefined in reduce functions. See the shell transcript along
with the design document and log output. Also available at [1].
> ddoc.json:
> {
>   "views": {
>      "lib": {
>          "foo": "exports.bar = 42;"
>      },
>      "test": {
>          "map": "function(doc) { emit(doc._id, require('views/lib/foo').bar); }",
>          "reduce": "function (keys, values, rereduce) { return require('views/lib/foo').bar;
}"
>      }
>   }
> }
> require_test.sh:
> $ curl http://localhost:5984
> {"couchdb":"Welcome","version":"1.1.0"}
> $ curl -X PUT http://localhost:5984/reduce_test
> {"ok":true}
> $ curl -X PUT http://localhost:5984/reduce_test/_design/test --data @ddoc.json
> {"ok":true,"id":"_design/test","rev":"1-5a587aeb82027657db334265037a4692"}
> $ curl -X POST http://localhost:5984/reduce_test -H "Content-Type: application/json"
-d '{}'
> {"ok":true,"id":"cd5869297d813d45d3e9f8016f001834","rev":"1-967a00dff5e02add41819138abb3284d"}
> $ curl "http://localhost:5984/reduce_test/_design/test/_view/test?reduce=false"
> {"total_rows":1,"offset":0,"rows":[
> {"id":"cd5869297d813d45d3e9f8016f001834","key":"cd5869297d813d45d3e9f8016f001834","value":42}
> ]}
> $ curl "http://localhost:5984/reduce_test/_design/test/_view/test"
> {"rows":[
> {"key":null,"value":null}
> ]}
> ^^^ Expected {"key":null,"value":42}
> couch.log:
> [info] [<0.313.0>] OS Process #Port<0.2368> Log :: function raised exception
(new ReferenceError("require is not defined", ""))
> [info] [<0.14096.0>] 127.0.0.1 - - 'GET' /reduce_test/_design/test/_view/test 200
> [1] https://gist.github.com/1049231



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message