首页 > 解决方案 > 使用“+”号快速解析 queryParams

问题描述

我有一个 Express 服务器,并且在我的路由中配置了:

app.use(express.urlencoded({ extended: false }));

在前端,我使用 Angular 发送请求:

let params = new HttpParams().set('info', info);
if (email) {
  params = params.set('email', encodeURIComponent(email));
}

let res;

try {
  res = await this.http.get(`/api/users`, { headers: header, params }).toPromise();
  return res._embedded.users;
} catch (err) {
  return false;
}

我从前端收到一个带有查询参数的 GET 请求,email=jhondoesd%2Btest%40trond.com我希望在我的路由处理程序中收到,query:{email:"jhondoesd+test@trond.com"}但我收到query:{email:"jhondoesd%2Btest%40trond.com"}的是,所以似乎查询参数没有被解码。我需要配置什么?

标签: javascriptnode.jsexpress

解决方案


我正在回答我自己的问题,所以也许其他人会觉得这很有用。正如@cbr 所说,这是 Angular 的一个开放问题。我尝试了这篇文章中给出的解决方案,它奏效了。


推荐阅读