如何打印Twitter API返回的错误信息并将其展示给用户
解决方案
修改后的完整代码
const Twitter = require('twitter'); const client = new Twitter({ consumer_key: 'XXXX', consumer_secret: 'XXX', access_token_key: 'XXXX', access_token_secret: 'XXXX' }); client.post('statuses/update', {status: 'Hii twitter test 123'}, function( error, tweet, response ) { if (error) { // 兼容不同的错误返回格式 const errList = Array.isArray(error) ? error : [error]; errList.forEach(errItem => { // 提取错误信息,兜底处理无明确message的异常报错 const showMsg = errItem.message || JSON.stringify(errItem); console.log(`发布推文失败:${showMsg}`); // 如果需要给前端/用户展示,直接把showMsg传入你的提示逻辑即可 }); return; } //console.log(tweet); // 推文返回体 console.log(response); // 原始响应对象 });
逻辑说明
- 原代码直接
throw error会触发未捕获异常,直接终止Node程序,无法友好展示错误 - Twitter API返回的业务错误默认是数组格式,每个元素包含
code(错误码)和message(错误描述)两个字段,兼容处理后所有API返回的错误都能正常提取信息 - 可以根据业务需求,将控制台打印的逻辑替换为前端弹窗、接口返回等面向用户的提示逻辑
内容的提问来源于stack exchange,提问作者Sameer kr
相关产品推荐
相关产品推荐

