文件过大

写文件上传的时候,前台和后台都遇到了文件过大的错误。
前台用的是nginx转发, 后台用的是spring boot

前台:413 Request Entity Too Large" angular

后台:
lQLPJxbD8U8xdZnNAUHNBiywoThlFitFOQwDQhlCtsBwAA_1580_321.png

之后了解到,nginx 默认上传的最大body是 1M, 超过1M的数据请求就会报413错误

lQLPJxbD8OzYfb_NAgPNA86w_JnLbZfeSVgDQhiilEBLAA_974_515.png

解决:

在nginx.conf里设置配置:

server {
   client_max_body_size 20M;
   ...
}

angular循环依赖

lQLPJxbEvLgx-IPMz80FHLDZDaL9Ulk3QgNDZohAwBAA_1308_207.png

这里HttpInterceptor造成了循环依赖。

解决:

export class HttpErrorInterceptor implements HttpInterceptor {
  public static DONT_INTERCEPT_HEADER_KEY = 'http-error-do-not-intercept';
  thyNotifyService = this.injector.get(ThyNotifyService);

  constructor(private readonly injector: Injector) {
  }

}

直接在构造函数中构造Injector, 然后再使用this.injector.get(ThyNotifyService)构造service。

实际上,我们直接获取了根注入器。再获取了注入器中的service。

这样的话,当前的类就不会直接构造ThyNotifyService,而是获取了根注入器。从而避免了循环依赖
image.png


weiweiyi
1k 声望123 粉丝