我正在尝试编写一些代码,以从MediaWiki API获得各种属性。但是,当我尝试从页面获取某些数据(例如标题)时,它将引发错误。
const reqDesc = (requestid) => new Promise((resolve, reject) => {
request({
method: 'GET',
url: `https://example.wikia.com/api/v1/Articles/AsSimpleJson?id=${requestid}`
}, (error, response, body) => {
if (!error && response.statusCode === 200) {
return resolve(`<${body.sections[0].content[0].text}>`);
} else if (error) {
return reject(`Error: ${error}`);
} else {
return reject(`Response code: ${response.statusCode}`);
}
});
});
((我知道请求已过时,我正在尝试找到更好的东西。)
上面的代码应该起作用,但是在return resolve(`<${body.items[0].id}>`);
处会抛出'TypeError:无法读取未定义的属性'0''
代替request
,您可以使用Axios。对于'TypeError: Cannot read property '0' of undefined'
,这意味着sections
或content
未定义。您可能想看一下body
内部的内容。
示例:
let requestid = 1;
let url = `https://example.wikia.com/api/v1/Articles/AsSimpleJson?id=${requestid}`;
axios({
url: url,
responseType: 'json',
})
.then(response => {
console.log('--response--');
let section = reponse.data.sections[0] || {};
let content = section.content || {};
let elem = content[0] || {};
let text = content.text;
return text;
})
.then(console.log)
.catch(error => {
console.log('--error--');
console.log(error);
});