console.log(err.message); & console.log(错误[0].消息);
console.log(err.message); & console.log(err[0].message);
使用 Twitter API 时,如果一切正常,则使用 err[0].message
将 return You have already ___ed this tweet.
,但是如果出现 HTTP 状态代码,则表示由于速率限制,然后输出将变为 TypeError: Cannot read property 'message' of undefined
这可能导致脚本在失败时停止。
这可以通过将 err[0].message
更改为 err.message
来解决,但是,如果一切顺利,它将 return undefined
而不是 You have already ____ed this tweet.
。
使用err.message
时的片段:
T.post('statuses/retweet', id, function(err, response){
// log failures
if(err){
console.log(err.message);
限速时的输出:
HTTP Error: 429 Too Many Requests
不受速率限制时的输出:
undefined
使用err[0].message
时的片段:
T.post('statuses/retweet', id, function(err, response){
// log failures
if(err){
console.log(err.message);
限速时的输出:
TypeError: Cannot read property 'message' of undefined
不受速率限制时的输出:
You have already retweeted this tweet.
那么处理这个问题的最佳方法是什么,以确保两者都能正确记录,而不会导致错误或输出不清楚?
如果没有错误,err
将是undefined
如果发生速率限制,err
将是HTTP Error: 429 Too Many Requests
如果出现其他错误,err
将是一个数组。
您可以检查 err
类型来处理所有情况。
'use strict';
let _ = require('lodash');
T.post('statuses/retweet', id, function (err, response) {
if (err) {
if (_.isArray(err)) {
// handles You have already ___ed this tweet.
console.log(err[0].message);
} else {
// this takes care of HTTP Error: 429 Too Many Requests
console.log(err.message);
}
}
});
使用 Twitter API 时,如果一切正常,则使用 err[0].message
将 return You have already ___ed this tweet.
,但是如果出现 HTTP 状态代码,则表示由于速率限制,然后输出将变为 TypeError: Cannot read property 'message' of undefined
这可能导致脚本在失败时停止。
这可以通过将 err[0].message
更改为 err.message
来解决,但是,如果一切顺利,它将 return undefined
而不是 You have already ____ed this tweet.
。
使用err.message
时的片段:
T.post('statuses/retweet', id, function(err, response){
// log failures
if(err){
console.log(err.message);
限速时的输出:
HTTP Error: 429 Too Many Requests
不受速率限制时的输出:
undefined
使用err[0].message
时的片段:
T.post('statuses/retweet', id, function(err, response){
// log failures
if(err){
console.log(err.message);
限速时的输出:
TypeError: Cannot read property 'message' of undefined
不受速率限制时的输出:
You have already retweeted this tweet.
那么处理这个问题的最佳方法是什么,以确保两者都能正确记录,而不会导致错误或输出不清楚?
如果没有错误,err
将是undefined
如果发生速率限制,err
将是HTTP Error: 429 Too Many Requests
如果出现其他错误,err
将是一个数组。
您可以检查 err
类型来处理所有情况。
'use strict';
let _ = require('lodash');
T.post('statuses/retweet', id, function (err, response) {
if (err) {
if (_.isArray(err)) {
// handles You have already ___ed this tweet.
console.log(err[0].message);
} else {
// this takes care of HTTP Error: 429 Too Many Requests
console.log(err.message);
}
}
});