我正在尝试从Echonest获取艺术家资料。我需要在查询字符串中多次使用名为“bucket”的参数。我试图用一个数组设置它与我传递的对象。这可以在数组中传递吗?
我有这个:
bucket:['biographies', 'images', 'artist_location', 'urls'];
我想要这个:
bucket=biographies&bucket=images&bucket=artist_location&bucket=urls
客户端:
getArtistProfile = function(artistName){
var params = {
format:'json',
bucket:['biographies', 'images', 'artist_location', 'urls'],
name:artistName
};
Meteor.call('getEchoNestData', params, function(error, result) {
if (error)
console.warn(error);
else
console.log(result);
});
};
服务器方法:
getEchoNestData:function(type, params){
check(type, String);
params.api_key = Meteor.settings.echonest.apiKey;
var result = HTTP.get('http://developer.echonest.com/api/v4/artist/profile' + type, {timeout:5000, params:params});
return result;
}
答案 0 :(得分:1)
我可能会误解你的问题,但似乎你在问如何动态构建一组查询字符串参数。你可以有这样一个简单的帮手:
function getParams( arr ) {
var params = [];
for ( i = 0; i < arr.length; ++i ) {
params.push( 'bucket=' + arr[ i ] );
}
return params.join( '&' );
}
传入你的param值数组,如下所示:
var params = getParams( bucket );