couchDB designDoc开发工作stream程和版本控制

对于开发,我希望将构成couchDBdevise文档的各种组件( viewslistsshows )作为单独的文件保存在一个名为couchDB的dir中,例如我的其他开发代码。 当我对变化感到满意时,我想使用couchapp.push发送到数据库,同时也能够对devise文档组件文件进行版本控制。

我想可能使用节点模块'couchapp'和节点扫描一个目录及其子目录.js文件,然后使用它们来构builddevise文档并上传到couchDB。 也许子结构如下所示:

 designDocsJs |-- views | |--view1.js | |--view2.js |-- shows |-- lists 

是否有可能把地图和减less在同一个文件,例如。 'view1.js'或者他们需要在单独的文件'view1-map.js''view1-reduce.js'

Curretnly我正在使用以下,但我不知道如何去阅读使用节点的.js文件,并dynamic地将它们添加到ddoc.views {}? 任何指导将不胜感激,特别是与JavaScript /节点解决scheme。

 var couchapp = require('couchapp') , path = require('path'); ddoc = { _id: '_design/entitiesNew' , views: {} , lists: {} , shows: {} } // node module exports module.exports = ddoc; // REPLACE ME WITH SOME WAY OF READING A // STRUCTURED DIR OF .JS FILES AND COMBINING // AS NECESSARY ddoc.views.byType = { map: function(doc) { emit(doc.type, null); }, reduce: '_count' } couchapp.loadAttachments(ddoc, path.join(__dirname, '_attachments')); 

接着:

 $ cd path/to/here $ mkdir _attachments $ couchapp push updateCouchDbDesigndocs.js http://localhost:5984/databaseName 

couchapp工具就是这样做的。 我推动使用couchapp和其他脚本。

这是目录结构:

 mycouchappdir |-- views/ |-- myview1/ |-- map.js |-- reduce.js |-- shows/ |-- myshow1.js |-- myshow2.js |-- _attachments/ |-- myattachment.png 

你的map.js文件如下所示:

 function(doc) { emit(doc.type, null); } 

然后从mycouchappdir运行mycouchappdir


你也可以考虑把你的couchapps放在自己的仓库里。 运行couchapp push始终为devise文档创build一个新的修订版本。 所以如果你的couchapp有不同的版本库,那么当你修改版本库的时候,对couchapp是一个改变,你可以知道新版本与旧版本不同。