gpt4 book ai didi

jquery - 在 Node.js 中实现 AJAX 请求服务器端的正确方法

转载 作者:搜寻专家 更新时间:2023-10-31 23:24:38 32 4
gpt4 key购买 nike

我正在构建一个搜索引擎,在客户端发布搜索字符串后在服务器端查询 Twitter 和 Wiki API。当我仍然完全在客户端时,对 Wiki API 的 AJAX 请求看起来像:

$.ajax({
url: 'https://en.wikipedia.org/w/api.php',
data: {
action: 'query',
list: 'search',
srsearch: searchString, // variable pulled from input
format: 'json',
//origin: 'https://www.mediawiki.org'
},
xhrFields: {
withCredentials: true
},
dataType: 'jsonp' // will probably use 'json' now that I'm server-side
}).done( function ( data ) {
searchParser(data);
});
... //searchParser() below

现在,我已经实现了一个 Node.js 网络应用程序,它从主页上的客户端表单 POST (index.ejs) 获取搜索字符串。然后服务器将呈现结果页面 (results.ejs),其中包含 wiki 和 twitter 搜索结果。 Twitter API 搜索已使用 BoyCook's TwitterJSClient 处理.

我想知道从我的服务器执行此精确 查询的最佳方式。我一直在环顾四周,找不到简洁的答案。有人对此有什么建议吗?

最佳答案

这是我根据 Jonathan's 得出的解决方案回复:

function wikiSearch () {

var query = querystring.stringify({
action: 'query',
list: 'search',
srsearch: searchString,
srlimit: 10,
srwhat: 'text',
format: 'json'
});
var options = {
hostname: 'en.wikipedia.org',
path: '/w/api.php?' + query
};

var req = https.request(options, function(res) {

if (!res) {
wikiData = "An error occured!";
complete();
};

var body = '';
console.log("statusCode: ", res.statusCode);
res.setEncoding('utf8');

res.on('data', function(data) {
body += data;
});

res.on('end', function() {
wikiData = wikiDataParser( JSON.parse(body) );
complete();
});
});

req.end();
req.on('error', function (err) {
wikiData = "<h2>MediaWiki API is currently down.</h2>";
complete();
})

};
... // complete() is below

这会根据请求或响应更改 wikiData 变量。

关于jquery - 在 Node.js 中实现 AJAX 请求服务器端的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32938344/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com