【发布时间】:2021-03-11 12:43:43
【问题描述】:
我正在使用 react、nodejs 和 mongodb。我有一个搜索栏,它向搜索函数发送一个发布请求,然后查询 mongodb 并返回结果。问题是函数永远不会被执行。
反应:
const getData = (searchValue) => {
const ourRequest = Axios.CancelToken.source();
async function fetchPost() {
try {
const response = await Axios.post(`/search`, {
params: { searchValue },
cancelToken: ourRequest.token,
});
if (response.data) {
console.log(response.data);
} else {
dispatch({ type: 'notFound' });
}
} catch (e) {
console.log('There was a problem or the request was cancelled.');
}
}
fetchPost();
};
快递:
路由器.js
apiRouter.post('/search', postController.search);
postController.js
exports.search = function (req, res) {
Post.search(req.body.searchTerm)
.then((posts) => {
console.log('Hello..');
res.json(posts);
})
.catch((e) => {
res.json([]);
});
};
Post.js:
Post.search = function (searchTerm) {
return new Promise(async (resolve, reject) => {
if (typeof searchTerm == 'string') {
console.log('hello..', searchTerm) // nothing
let posts = await Post.reusablePostQuery([
{ $match: { $text: { $search: searchTerm } } },
{ $sort: { score: { $meta: 'textScore' } } },
]);
resolve(posts);
} else {
reject();
}
});
};
当我输入搜索时,我在开发控制台中得到一个空数组响应。
【问题讨论】: