當使用cradle作為node連線couchdb時候
要用temp view來動態撈取資料可參考此篇
這邊是希望doc._id欄位字串中有帶入給定參數的
就撈出來呈現...
var util = require('util')
, cradle = require('cradle')
, db = new(cradle.Connection)('http://xxx.xxx.xxx.xxx', 5984, {
auth: { username: dbusername, password: dbpassword },
cache: true,
raw: false
}).database('dbname');
//Write module
exports.test = function() {
db.temporaryView({
//If you want to bring a parameter into tmp view, you need to also have "" in your parameter
map: 'function (doc) { if (doc && doc._id && doc._id.indexOf("'+ params +'") >=0 ) emit(doc._id, doc); }'
}, function (err, res) {
if (err){
console.log('[ERROR]:'+err);
}
callback(err, res);
});
}
//Use it
this.test();
需要注意的是,temporaryView中帶入的是json參數,由json帶入map function
因此最好將整個map function定義成變數
然後要帶入的變數就可以夾在中間...只是要注意到變數的兩邊要給他雙引號起來
因為轉成字串時候,需要有雙引號,才會是單純的字串,而不會又變回變數...