我正在尝试根据传递给我的switch语句的字符串将位于我的模块文件query-type.js
中的对象传递给全局变量(app.js
),但由于某种原因,我可以似乎将值设置为我的全局params
,尽管我的案例中的控制台日志正确输出params
对象。我的console.log(params)
正在针对这两种情况运行,但全局范围console.log('These are the params ' + params);
甚至没有出现。有关为什么会发生这种行为的任何想法?
全局JS文件(切换和全局变量):
function keywordQuery(auth) {
var authSheets = auth;
var siteUrl = encodeURIComponent('http://www.test-site.com/');
var params;
switch(process.argv[2]){
case "allTrafficQuery":
params = webmasterQuery.allTrafficQuery(auth, siteUrl);
return console.log(params);
break;
case "usaTrafficQuery":
params = webmasterQuery.usaTrafficQuery(auth, siteUrl);
return console.log(params);
break;
default:
params = ("Error");
}
console.log('These are the params ' + params);
}
模块文件:
module.exports = {
allTrafficQuery: function(authToken, siteUrlEncoded){
var allTraffic = {
auth: authToken,
siteUrl: siteUrlEncoded,
resource: {
'dimensions': ['query']
}
}
return allTraffic;
},
usaTrafficQuery: function(authToken, siteUrlEncoded){
var usaTraffic = {
auth: authToken,
siteUrl: siteUrlEncoded,
resource: {
'dimensions': ['query'],
'dimensionFilterGroups': [{
'filters': [{
'dimension': 'country',
'operator': 'equals',
'expression': 'USA'
}]
}]
}
}
return usaTraffic;
}
};
答案 0 :(得分:4)
在你的switch
陈述案例中,你将退出该职能部门。
见这里:
case "usaTrafficQuery":
params = webmasterQuery.usaTrafficQuery(auth, siteUrl);
return console.log(params); // This ends the function execution
break;
因此,switch语句之后的逻辑(即您正在查询的console.log
)不会被执行。如果它落在default
的情况下(因为它没有return
),它应该按预期工作。