使用Node.js调用维基百科特色内容API报错:Invalid mm parameter
问题原因及解决方案
错误提示Invalid mm parameter的核心原因是:维基百科特色内容API要求路径中的月份和日期必须是两位数格式(比如3月要写03,7号要写07),但你当前代码中直接使用today.getMonth() + 1得到的是不带前导零的数字(如3),不符合API的参数格式要求。
修正步骤
修改日期参数的处理逻辑,给月份和日期补上前导零:
- 将月份转换为两位数格式:
String(month).padStart(2, '0') - 将日期转换为两位数格式:
String(day).padStart(2, '0')
修正后的完整代码
// Get today's featured content from English Wikipedia let today = new Date(); let year = today.getFullYear(); let month = String(today.getMonth() + 1).padStart(2, '0'); // 补前导零 let day = String(today.getDate()).padStart(2, '0'); // 补前导零 let url = `https://api.wikimedia.org/feed/v1/wikipedia/en/featured/${year}/${month}/${day}`; let response = await fetch( url, { headers: { 'Authorization': 'Bearer 123456123456123456...123456', 'Api-User-Agent': 'test (test@gmail.com)' } } ); response.json() .then(console.log).catch(console.error);
额外验证点
- 你的个人API令牌格式正确,无需调整
- Node.js v18.14.1原生支持
fetch,版本无问题 Api-User-Agent格式符合要求,无需修改
内容的提问来源于stack exchange,提问作者Dariusz Legizynski
相关产品推荐
相关产品推荐

