文字列オブジェクトを関数に渡そうとして問題が発生しています。URL のクエリ文字列では、目的の属性を含むコンマ区切りの文字列であるフィールドを渡します。
これらの属性の名前を fields 配列に入れました。しかし今、その情報を関数に渡すのに問題があります。
以下のコードでは、query.pluck('id', 'name') は機能しますが、query.pick( fieldString ) は機能しません。
フィールド配列の属性名を関数に渡して機能させるにはどうすればよいですか?
ご意見をお聞かせください。
var log = require('logule').init(module,'query');
var url = require('url');
module.exports = {
build : function(req, entity, callback) {
var isCollection;
isCollection = req.params.id? false: true;
var query = req.rethink.table(entity);
parsedUrl = url.parse(req.url, true);
console.log(isCollection);
if (parsedUrl.query.fields) {
var fields = parsedUrl.query.fields.split(',');
var total = fields.length;
fieldString = fields[0];
for (var i = 1; i < total; i++) {
fieldString += ', ' + fields[i];
}
if (isCollection) {
var query = query.pluck('id', 'name');
} else {
var query = query.get(req.params.id).pick( fieldString );
}
}
return callback(null, query);
}
}