【发布时间】:2021-08-24 03:05:49
【问题描述】:
这是我第一次尝试使用 URL 过滤功能,我不确定我做了什么。我有这项服务:
getFiltered(filterData: any[]): Observable<BreedingSheet[]> {
console.log('from service', filterData);
return this.http.get<BreedingSheet[]>(${this.breedingSheetsUrl}/filter/search?family=test)
.pipe(
map(filteredResult => filteredResult['breedingSheets']),
shareReplay()
);
}
这在后端:
router.get('/filter/search', async(req, res, next) => {
console.log('call backend from service');
console.log('family is', req.params.family);
await BreedingSheet.find()
.populate('creator')
.then(documents => {
res.status(200).json({
message: 'filtered breeding sheets succesfully loaded',
breedingSheets: documents
});
});
});
但是当调用发生时,后端控制台会记录我:family is undefined
我错过了什么吗?
【问题讨论】:
-
试试这个
req.query.family而不是req.params.family -
您为客户端显示的内容实际上不是有效的语法。您应该能够将其缩小为: 1. 客户提出了错误的请求;或 2. 服务器对正确的响应不正确。使用替代客户端(Postman、curl、...)或检查“网络”选项卡。我建议也阅读expressjs.com/en/api.html#req.params。
标签: javascript angular express