2013-06-22 31 views
1

我希望跨各種couchdb視圖地圖函數使用多種函數。 我正在嘗試使用commonjs require模式。使用commonjs模式重複使用couchdb視圖中的函數

使用以下設計文檔爲什麼test1需要語句工作,而test2需求語句似乎不起作用?

我還可以在多個couchdb視圖中重用函數嗎?

{ 
    "_id": "_design/app", 
    "_rev": "29-876296b1278db067378635a5f3309aa3", 
    "views": { 
     "test1": { 
      "map": "function (doc) {\n var setting1 = require('views/lib/config').setting1;\n emit(doc._id, setting1);\n }" 
     }, 
     "test2": { 
      "map": "function (doc) {\n var fn1 = require('views/lib/sharedFunctions').fn1;\n emit(doc._id, fn1(doc));\n }" 
     }, 
     "lib": { 
      "config": "exports.setting1 = 'a';exports.setting2 = 42", 
      "sharedFunctions":"exports.fn1 = function (doc) {\n return 'fn1 read doc ' + doc._id;\n }" 
     } 
    } 
} 

進一步信息:我目前使用的「咕嚕-couchapp」插件從我的項目的src目錄管理我的設計文檔的上傳

+0

test2的輸出是什麼?你的CouchDB版本是什麼?這兩個視圖對我來說都適用於1.2.2和1.3.0版本。調試日誌也是受歡迎的,可能有助於理解問題。 – Kxepal

+0

couchdb v1.2.0,我會更新並看看我如何去,如果仍然probs我會發布調試日誌 – johowie

+1

所有工作在v1.3.1。我還沒有嘗試過任何早期版本。所以看起來功能的需求在v1.2.0中不起作用 – johowie

回答

1

只需添加這爲答案,使這個問題停止出現無人接聽。 OP發現升級到1.3(從1.2開始)解決了這個問題。