【问题标题】:How To Use Angular HttpParams And SQL JOIN With Get Request?如何使用 Angular HttpParams 和 SQL JOIN 来获取请求?
【发布时间】:2017-11-29 18:00:16
【问题描述】:

我第一次使用 REST 和 HttpParams 的 Angular 文档对学习毫无用处,至少对我来说是这样。此外,只有一些较旧的 SO 问题,没有一个涉及连接,或者我们应该在 2017 年 9 月 9 日更新后采取的方法。所以我,可能还有其他许多人,需要一些指导:-)

这个 url 字符串工作正常,但真的很难看:

return this.http
        .get<DfApi>(this.baseUrl + dbTable + '?filter=' + '('
          + column1 + '%20like%20' + entry + '%25)%20or%20('
          + column2 + '%20like%20' + entry + '%25)', {headers: this.headers});

我知道我可以使用字符串插值,但对于我这个新手来说,以上更容易可视化。我理解“让 params = new HttpParams().set...;”自 2017 年 9 月上旬以来未使用。因此需要这样的东西来设置参数。

this.params = {
        // do something
      };

我想我想达到这个目的:

return this.http
        .get<DfApi>(`${this.baseUrl}/${dbTable}`, 
                    {params: this.params, headers: this.headers});

我不知道如何从我的 url 字符串中获取设置导致 url 字符串的参数。我很惊讶还没有关于这方面的博客文章,因为它似乎应该在某个地方教授。

顺便说一句,我的 Postgres 标头使用旧方法。

【问题讨论】:

  • 参数是键值对。 Angular 并不关心参数的值是什么。它必须是一个字符串,仅此而已。
  • “更容易想象”哈哈!
  • 我在这个 url 字符串中看不到键值对。我知道如何来回发送 JSON。这是一个查询。如果您已经有了线索,这可能很容易......
  • 键值对是this.params = {filter: 'your_sql_string'};,从这里角度将负责将其转换为查询字符串filter=your_sql_string。从客户端发送 SQL 语句似乎存在安全风险
  • 要插入 ${},字符串必须用反引号括起来,而不是简单的引号。

标签: angular


【解决方案1】:

我的代码有两个不同的搜索,第一个查询两个数据库列(字段),第二个查询只有一个列。这适用于开发,但对生产存在安全问题。

public search(dbTable: string, column1: string, column2: string, entry: string) {

    if (column1 === 'main_skill1') {

      this.params = {
        'filter': `(${column1} like ${entry}%) or (${column2} like ${entry}%)`
      };

      return this.http
        .get<DfApi>(`${this.baseUrl}${dbTable}?`, {params: this.params, headers: this.headers});

    } else {

      this.params = {
        'filter': `(${column1} like ${entry}%)`
      };

      return this.http
        .get<DfApi>(`${this.baseUrl}${dbTable}?`, {params: this.params, headers: this.headers});

    }

【讨论】:

    猜你喜欢
    • 2020-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多