ExpressWebJs 4가 출시되었습니다!

ExpressWebJs 버전 4가 출시되었으며 다음과 같은 많은 새로운 기능이 포함되어 있습니다.
  • Mongoose 및 ObjectionJs ORM 지원.
  • SQL 데이터베이스 관계 애드온.
  • mongo DB에 대한 다중 테넌시 지원.
  • 경로 일치.
  • 경로 리디렉션.
  • 미들웨어 처리기 메서드가 개선되었습니다.
  • 향상된 서비스 레지스트리 처리기.
  • 사용자 정의 확인 규칙.
  • 향상된 이벤트 클래스 생성.
  • 지원되는 대기열 연결에 Redis가 추가되었습니다.
  • 분산 서비스에 대한 서비스 통신입니다.
  • DDD(도메인 기반 설계).
  • 더 빠른 요청을 위한 Restana 플랫폼 서비스 지원
    처리.
  • Optional( ) , ObjectMapper( ) , 와 같은 새로운 유틸리티 기능FirstCharacterToLowerCase( ) , Group( ) , ObjectHasProperty( ) .
  • 고급 데이터 작업에 도움이 되는 새로운 컬렉션 기능
    구조와 알고리즘.

  • ExpressWebJs uses a variety of community driven packages for a number of features in the framework.



    ExpressWebJs 버전 4는 2023년 11월까지 버그 수정을, 2024년 2월까지 보안 수정을 받을 예정입니다. 자세히 다룬 기능 중 일부는 다음과 같습니다.

    SQL 데이터베이스 모델에 대한 몇 가지 관계 추가 기능을 추가했습니다.
    관계 매핑 방법에는 이제 추가 옵션도 허용하는 새로운 hasMany , belongsTo , hasOne , hasOneThrough , hasManyThrough 방법과의 관계를 처리하는 좋은 방법이 있습니다.

    hasManyThrough()

     export class UserModel extends Model {
      static tableName = "users";
    
      id!: string;
      name!: string;
      email!: string;
      password!: string;
    
      static relationMappings() {
        return {
          carOwner: this.hasManyThrough("App/Model/Cars_model",
          "App/Model/CarOwners_model", {
            join_final_foreign_key: "user_id",
            join_parent_foreign_key: "car_id",
          }),
        };
      }
    }
    


    hasOneThrough()

     export class UserModel extends Model {
      static tableName = "users";
    
      id!: string;
      name!: string;
      email!: string;
      password!: string;
    
      static relationMappings() {
        return {
          carOwner: this.hasOneThrough("App/Model/Cars_model", 
            "App/Model/CarOwners_model", {
            join_final_foreign_key: "user_id",
            join_parent_foreign_key: "car_id",
          }),
        };
      }
    }
    


    hasOne()

    export class UserModel extends Model {
      static tableName = "users";
    
      id!: string;
      first_name!: string;
      last_name!: string;
      email!: string;
      password!: string;
    
      static relationMappings() {
        return {
          profile: this.hasOne("App/Model/Profile_model"),
        };
      }
    }
    


    많이있다()

    export class UserModel extends Model {
      static tableName = "users";
    
      id!: string;
      first_name!: string;
      last_name!: string;
      email!: string;
      password!: string;
    
      static relationMappings() {
        return {
          profile: this.hasMany("App/Model/Cars_model"),
        };
      }
    }
    


    속해()

    export class Posts extends Model {
      static tableName = "posts";
    
      id!: string;
      name!: string;
      user_id!: string;
    
      static relationMappings() {
        return {
          users: this.belongsTo("App/Model/Users_model"),
        };
      }
    }
    


    관계 필터
    관계 매핑에 몇 가지 필터를 추가할 수도 있습니다.

    static relationMappings() {
        return {
          profile: this.hasMany("App/Model/Cars_model",{
            filter: (builder) => {
              builder.where("name", "Mercedes");
            },
          }),
        };
      }
    


    일부 경로 기능도 추가됩니다.

    루트 매치
    경우에 따라 여러 HTTP 동사에 응답하는 경로를 등록해야 할 수도 있습니다. 일치 방법을 사용하여 그렇게 할 수 있습니다. 또는 all 메소드를 사용하여 모든 HTTP 동사에 응답하는 경로를 등록할 수도 있습니다.

      Route.match(["get", "post"], "/books", 
            "UserController@process");
    


    경로 리디렉션
    다른 URI로 리디렉션되는 경로를 정의하는 경우 경로 리디렉션 방법을 사용할 수 있습니다. 이 방법은 편리한 바로 가기를 제공하므로 이 작업을 수행하기 위해 전체 경로 또는 컨트롤러를 정의할 필요가 없습니다.

     Route.redirect("source_url", "destination_url");
    


    ExpressWebJs 웹 사이트에서 새 기능 및 업데이트의 전체 목록을 볼 수 있습니다.

    친절하게 따르십시오.

    github에 별표 표시하는 것을 잊지 마십시오.

    discord 채널에 가입할 수도 있습니다.

    좋은 웹페이지 즐겨찾기