如何使用mwbot请求Mediawiki进行后续请求

时间:2017-10-09 15:33:11

标签: node.js express mediawiki-api

当我在节点上使用mwbot发出后续请求时出现此错误。

response: 
   { login: 
      { result: 'Aborted',
        reason: 'Cannot log in when using MediaWiki\\Session\\BotPasswordSessionProvider sessions' } } }

我正在通过提供标题来阅读来自mediawiki的页面。我认为每个请求都需要登录才能阅读,但似乎我错了,因为这个错误似乎抱怨我已经登录了。但我不知道如何阅读会话或如何查找我已登录或未登录。

路线:

router.get('/wikipage/:title', function(req, res, next) {
    let title = req.params.title;

  const MWBot = require('mwbot');
  const wikiHost = "https://wiki.domain.com";
  let bot = new MWBot();
  let pageContent = "wiki page not created yet, please create";

  bot.login({
    apiUrl: wikiHost + "/api.php",
    username: "xxx@apiuser",
    password: "xxxxx"
  }).then((response) => {
    console.log("logged in");
    return bot.read(title);
  }).then((response) => {
    for(let prop in response.query.pages) {
        pageContent = response.query.pages[prop]['revisions'][0]['*'];
        console.log("pageContent:", pageContent);       
        break;
    }

    res.json({
        data: pageContent
    });

  }).catch((err) => {
        // Could not login
        console.log("error", err);
  });

});

module.exports = router;

1 个答案:

答案 0 :(得分:0)

我认为你是在浏览器中运行它,在这种情况下,浏览器负责会话cookie处理。您可以通过document.cookie以常规方式查看。