【发布时间】:2017-02-14 23:34:06
【问题描述】:
我对使用 process.argv 的 NodeJS CLI 命令能够将包含对象的变量传递给我的函数方法非常陌生,但似乎在此过程中找不到我的对象中的属性值叫。我在我的对象siteUrl 的第二个属性处收到一个错误,并且似乎无法确定这是process.argv 编译信息的方式,还是我错误地使用了该命令。如果我用params 替换process.argv,那么我不会收到错误。
这是我的终端命令:
node app.js params
这是我的变量设置:
var siteUrl = encodeURIComponent('http://www.test.com/');
var params = {
auth: auth,
siteUrl: siteUrl,
resource: {
'startDate': moment().subtract(3, 'days').format("YYYY-MM-DD"),
'endDate': moment().subtract(2, 'days').format("YYYY-MM-DD"),
'dimensions': ['query', 'page'],
'dimensionFilterGroups': [{
'filters': [{
'dimension': 'country',
'operator': 'equals',
'expression': 'USA'
}]
}]
}
这是我的方法
var query = webmasters.searchanalytics.query(process.argv, function(err, res){
var formattedQueryList = [];
if (err){
console.log('This is the error: ' + err);
} else { ... }
我也在记录我的对象以确保值存在:
console.log(params.resource.startDate)
console.log(params.resource.startDate)
console.log(params.resource.endDate)
console.log(params.siteUrl)
console.log(siteUrl)
这是控制台日志:
2017-02-11
2017-02-12
http%3A%2F%2Fwww.test.com%2F
http%3A%2F%2Fwww.test.com%2F
This is the error: Error: Missing required parameters: siteUrl
【问题讨论】:
-
process.argv是字符串数组,而不是对象