我在这个项目中使用了wikipedia-js。这是我的summary.js
文件代码。
var wikipedia = require("wikipedia-js");
var something = "initial";
module.exports = {
wikitext: function(topicname) {
console.log("Inside wikitex funciton :" + topicname);
var options = {
query: topicname,
format: "html",
summaryOnly: false,
lang: "en"
};
wikipedia.searchArticle(options, function(err, htmlWikiText) {
console.log("Inside seararticlefunciton :");
if (err) {
console.log("An error occurred[query=%s, error=%s]", topicname, err);
return;
}
console.log("Query successful[query=%s, html-formatted-wiki-text=%s]", topicname, htmlWikiText);
something = htmlWikiText;
});
return something;
},
};
我在/wiki/:topicname
路线中使用的这个模块。里面对应的代码index.js
是这样的。
router.get('/wiki/:topicname', function(req, res, next) {
var topicname = req.params.topicname;
console.log(topicname);
var first = summary.wikitext(topicname);
res.send("Hello "+first);
});
问题是,每次我访问 wiki/ some-topicsummary.js
时,执行之前的最后一个返回语句htmlWikiText
都会填充内容。所以我总是hello initial
在浏览器页面上看到。尽管经过一段时间后,由于console.log
声明,它会打印在终端上。
那么我应该如何解决这个问题呢?