我正在使用搜索输入,获取和反应挂钩来查询用户的AWS数据库。为了使它正常工作,我必须设置一个单独的快递服务器并对此进行提取请求,因为AWS存在CORS问题,解决的方法很少。
我的提取请求...
https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js
如果我像这样在快递服务器上对查询进行硬编码...
const getUsers = async (query) => {
const results = await fetch(`http://localhost:3005/search?`)
const userData = await results.json()
console.log("this is the results", results, "this is the data", userData);
return userData.results
}
它起作用了,控制台输出是...
const express = require('express');
const request = require('request');
const app = express();
app.get('/search', function(req, res, query){
request(`https://search-*****-*****.eu-west-1.cloudsearch.amazonaws.com/2013-01-01/search?q=bob`, function (error, response, body) {
if (!error && response.statusCode === 200) {
console.log(body);
res.send(body);
}
});
});
app.listen(3005);
console.log('Server running on port %d', 3005);
匹配是Bob用户的数组,但是当我将查询字符串传递给我的提取时 请求,它不会返回任何结果
status: {rid: "****", time-ms: 1}
hits:
found: 1
start: 0
hit: [{…}]
__proto__: Object
__proto__: Object
const getUsers = async (query) => {
const results = await fetch(`http://localhost:3005/search?q=${query}`)
const userData = await results.json()
console.log("this is the results", results, "this is the data", userData);
return userData.results
}
它不会返回任何匹配...
const express = require('express');
const request = require('request');
const app = express();
app.get('/search', function(req, res, query){
request(`https://search-*****-*****.eu-west-1.cloudsearch.amazonaws.com/2013-01-01/search`, function (error, response, body) {
if (!error && response.statusCode === 200) {
console.log(body);
res.send(body);
}
});
});
app.listen(3005);
console.log('Server running on port %d', 3005);
我确定最好的查询方法是将其包含在获取请求中,但是我不确定为什么它不起作用。如果有人可以说出任何信息,我将不胜感激。
答案 0 :(得分:0)
您在做什么http://localhost:3005/search?q= $ {query},这是从前端进行的,但未将其用作aws url中的req.query.q。
const express = require('express');
const request = require('request');
const app = express();
app.get('/search', function(req, res, query){
request(`https://search-*****-*****.eu-west-1.cloudsearch.amazonaws.com/2013-01-01/search?q=`+req.query.q, function (error, response, body) {
if (!error && response.statusCode === 200) {
console.log(body);
res.send(body);
}
});
});
app.listen(3005);
console.log('Server running on port %d', 3005);