0

我在尝试将字符串对象传递给函数时遇到了一些麻烦。在 url 的查询字符串中,我传递字段,这是一个逗号分隔的字符串,包含感兴趣的属性。

我将这些属性的名称放在字段数组中。但是现在我无法将该信息传递给函数。

在 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);
   }
 }
4

2 回答 2

0

您不需要将字段放在字符串中,只需使用

var query = query.get(req.params.id).pick.apply(this,fields);
于 2012-12-01T12:24:13.657 回答
-1

您需要使用带有函数名称的“应用”函数和一组参数(在您的情况下为字段)

var query = query.get(req.params.id).apply('pick', fields);

于 2012-12-01T12:01:37.913 回答