開発のために、 couchDB設計ドキュメントを構成するさまざまなコンポーネント(、、)を、他の開発コードと一緒に、たとえばcouchDBというディレクトリに個別のファイルとして保持したいと思いviews
ます。変更に満足したら、couchapp.pushを使用してデータベースに送信すると同時に、設計ドキュメントコンポーネントファイルのバージョン管理も可能にします。lists
shows
ノードモジュール「couchapp」とノードを使用してディレクトリとそのサブディレクトリで.jsファイルをスキャンし、それらを使用して設計ドキュメントを作成し、couchDBにアップロードすることを考えています。おそらく、次のように構成されたサブディレクトリを使用します。
designDocsJs
|-- views
| |--view1.js
| |--view2.js
|-- shows
|-- lists
マップとリデュースを同じファイルに入れることは可能ですか?'view1.js'
または、それらは別々のファイルにある必要があります'view1-map.js'
か'view1-reduce.js'
?
現在、私は以下を使用していますが、ノードを使用して.jsファイルを読み取り、それらをddoc.views{}に動的に追加する方法がわかりません。特にjavascript/nodeソリューションの場合は、ガイダンスをいただければ幸いです。
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