【问题标题】:Getting params passed in service get URL on backend side获取在服务中传递的参数获取后端的 URL
【发布时间】: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


【解决方案1】:

我的问题的解决方案是:

req.query

【讨论】:

    猜你喜欢
    • 2012-10-09
    • 2011-09-11
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 1970-01-01
    • 2016-08-10
    相关资源
    最近更新 更多