首页 > 解决方案 > 未找到搜索结果时如何修复获取状态 500?

问题描述

我在我的 Angular 前端设计中有搜索栏,并且我正在使用 NestJS 作为我的后端。每当我在搜索栏中输入乱码时,我的网络响应都会收到状态 500 错误。

它不应该抛出错误,我试图弄清楚为什么我的查询出错只是无法找到一个值但不完全知道在哪里修复它,如果你有任何机会,我将不胜感激只需查看代码即可帮助我。

我做到了,尝试像这样的 catch 和 throwoException 但现在它将每个错误都视为未找到。我只是想找出为什么每次我查询时都说错误并且找不到结果并修复它。

        try {
            var finalSqlResults = await finalSql.getManyAndCount();
        } catch (error) {
            const result = { pageIndex: 0,
                pageSize: 0,
                results:[],
                totalCount:0} 
           throw new NotFoundException(result);
        }

标签: debuggingbackendnestjs

解决方案


您共享的更新代码片段似乎从您的服务返回 NotFoundException。而如果我们在这里尝试处理错误,我们应该返回新创建的结果 const。

  try {
        var finalSqlResults = await finalSql.getManyAndCount();
    } catch (error) {
        const result = { pageIndex: 0,
            pageSize: 0,
            results:[],
            totalCount:0} 
       return result;
    }

同样在您分享的 Stackblitz 中。IN 查询可能被创建为空白“()”,这可能会导致抛出 500 Internal Server Error。

 if (tags && tags.length > 0) {
    workspaceQuery = workspaceQuery.andWhere(
      new Brackets(qb => {
        qb.where('wstags.tag IN(:...tags)', { tags }).orWhere(
          'ctags.tag IN(:...tags)',
          { tags }
        );
      })
    );
  }
}

希望这可以帮助!


推荐阅读