couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robert Newson <robert.new...@gmail.com>
Subject Re: Problem with commonjs in view
Date Fri, 24 May 2013 14:36:16 GMT
Since the introduction of commonjs, yes. The libs are positioned under views so that we can
include the code in the checksum for the reason you mentioned. 

Sent from my iPhone

On 24 May 2013, at 15:29, Travis Paul <Tr@visPaul.me> wrote:

> Thanks Robert, Sorry Noah,
> Has this always been the case? I was always under the impression that you
> could only use require in validate, list, and show functions.
> 
> 
> On Fri, May 24, 2013 at 10:25 AM, Robert Newson <robert.newson@gmail.com>wrote:
> 
>> I can confirm you are wrong. You can require() into map functions.
>> 
>> Sent from my iPhone
>> 
>> On 24 May 2013, at 14:50, Travis Paul <Tr@visPaul.me> wrote:
>> 
>>> Forgive me for not reading the whole email and ignore this if I missed
>> some
>>> critical information. But if you're tring to import a library in a view,
>>> you can't. Views must be side-effect free. Someone please correct me if
>> I'm
>>> mistaken.
>>> 
>>> On May 24, 2013 4:36 AM, "Noah Diewald" <noah@diewald.me> wrote:
>>> 
>>> I have a design document where I'm trying to use commonjs in a view. At
>> this
>>> point I've failed at trying to do the more complicated stuff that I
>>> intended to
>>> use this functionality for. I'm just trying to do something simple so
>> that
>>> I can
>>> figure out why things aren't working for me. I'm following this wiki page
>>> fairly
>>> closely: https://wiki.apache.org/couchdb/CommonJS_Modules
>>> 
>>> I have a views property that looks like this:
>>> 
>>> views: {
>>> lib: {
>>>   blue: "exports.ninenine = 99;"
>>> },
>>> mymap: {
>>>   map: "function (doc) {emit(require('../lib/blue').ninenine);}"
>>> }
>>> }
>>> 
>>> I get errors that look like the following for every document in the log
>> when
>>> attempting to run the view in the temporary view interface in futon:
>>> 
>>> OS Process #Port<0.3115> Log :: function raised exception (new
>>> TypeError("mod.current is null", "/usr/share/couchdb/server/main.js",
>> 1125))
>>> with doc._id cccb3bb779549b28b2e48eb628934107
>>> 
>>> So it looks like relative paths don't work but if I use the property
>> path as
>>> shown in the wiki:
>>> 
>>> views: {
>>> lib: {
>>>   blue: "exports.ninenine = 99;"
>>> },
>>> mymap: {
>>>   map: "function (doc) {emit(require('views/lib/blue').ninenine);}"
>>> }
>>> }
>>> 
>>> I see this error in the log:
>>> 
>>> OS Process #Port<0.3115> Log :: function raised exception (new
>>> TypeError("mod.current is null", "/usr/share/couchdb/server/main.js",
>> 1125))
>>> with doc._id cccb3bb779549b28b2e48eb628934107
>>> 
>>> I haven't seen if the errors are any different when I don't try to get
>> the
>>> map
>>> function to run through futon but it isn't working either way.
>>> 
>>> This looks to be particular to the views. I am using commonjs with both
>>> updates
>>> and validate_doc_update in the same design document and they are working
>>> properly.
>>> 
>>> I am using the Arch Linux package couchdb 1.2.2-3. I hope I'm just making
>>> some
>>> type of dumb mistake that someone can point out. Any help would be very
>>> appreciated.
>>> 
>>> Noah
>> 

Mime
View raw message