LivelyCouch是为了使开发CouchDB更简单化而生成的.众所周知,CouchDB是通过HTTP对其数据进行操作,而LivelyCouch就是利用了node.js的HTTP对CouchDB进行操作.他对couchDB的切入点就是1.1.0以后加入的httpproxy模块,此模块也可以说是couchDB给自己做了一个扩展,对外来说是訪問couchdb,然而是訪問指定的url.
LivelyCouch主要有两个部分,
1、LivelyHandle,在这里几乎可以实现对couchdb所有的操作,还可以对信息进行处理.例:
exports.run = function (parameters, response, handlerLib) {
var client = handlerLib.couchdb.createClient(5984, '127.0.0.1', 'user', 'password');
var userDb = client.db('people');
var hairColour = parameters.query.haircolour;
var startAge = parameters.query.startage;
var endAge = parameters.query.endage;
// calling a view to get all people between 30 and 40
userDb.view('design_doc', 'people_per_age', {startkey=startAge, endkey=endAge}, function (data) {
// filtering all rows that have the specified hair colour
var filteredRows = data.rows.filter(function (row) {
return row.value.haircolor == hairColour;
});
// writing out all filtered rows to the response:
response.writeHead(200, {'Content-Type': 'text/plain'});
response.write(JSON.stringify(filteredRows));
response.end();
})
}
如果想通过http去执行上段代碼,则需要把上面文档以附件形式上传到lively_handler的一个文档中,文档格式如下:
{
"id": "your_app",
"_attachments": [
"filtered_people.js": {...},
"another_handler.js": {...}
],
"mapping": {
"/filtered_people": "filtered_people.js",
"/another_path": "another_handler.js"
}
}
通过http://127.0.0.1/_node/your_app/filered_people?haircolour=blond&startage=30&endage=40访問.請确保people数据庫中有design_doc/people_per_age,和在LivelyCouch的handlers-deployed有上传的js文件.路径:your_path/LivelyCouch/
handler_deployed/your_app/filered_people.js.
2、Lively Event System
主要还是当触发某个事件的時候做一些事情,比如文件更新,則给讀者发送一封邮件,Lively Event也是通过http去触发,实现方法如下,在lively_event中加入文档:
{
"_id": "email_event",
"trigger": [{
"path": "/send_email"
}],
"workers": [{
"name": "send_email",
"parameters": {
"recipient": "support@yourcompany.com"
}
}]
}
path是触发路径,workers是执行的事情,work也是存儲在lively_work的数据库中,格式如下:
{ "_id": "send_email",
"delegate": "sendmail.js",
"_attachments": {
"sendmail.js": {...},
"someOtherScript.js": {...}
}
}
LivelyCouch是一款旨在简化CouchDB开发的应用程序。它利用Node.js的HTTP功能与CouchDB交互,并通过httpproxy模块扩展了CouchDB的功能。LivelyCouch包括LivelyHandle组件,用于处理CouchDB的所有操作并过滤数据;以及LivelyEventSystem组件,用于响应事件,例如文件更新等。
2571

被折叠的 条评论
为什么被折叠?



