반응형
const fileStream = fs.createReadStream(tmpImagePath);
    const writeStream = fs.createWriteStream(finalImagePath);
    fileStream.pipe(writeStream);
    await fs.promises.unlink(imagePath);

    // ProductImagesEntity 인스턴스 생성
    const productImage = new ProductImagesEntity();
    productImage.productId = productId;
    productImage.imagePath = imageFilename;

    // ProductImagesEntity 인스턴스 저장
    await this.productImagesRepository.save(productImage);

팀원이 쓴 이미지 업로드 api에 들어가는 부분인데.... 

tmpImagePath는 이미지 경로? finalImagePath는 최종 경로라고 한다.

fs.createReadStream을 통해 이미지를 읽고 writeStream으로 최종 경로에 저장을 하는것 같은데.... 좀 더 봐야겠다.

function productSearch() {
  const search = document.getElementById('search').value;
  console.log(search);

  axios
    .get(`http://localhost:3000/orders/productSearch?search=${search}`)
    .then((res) => {
      let data = res.data.data;
      let temp = '';
      for (let i = 0; i < data.length; i++) {
        const timeAgo = getTimeAgo(data[i].createdAt);

        // 검색어 배경색 적용
        const title = data[i].title.replace(
          new RegExp(`(${search})`, 'gi'),
          '<span style="background-color: yellow">$1</span>',
        );

        temp += `
         <div class="container-fluid" onclick="alert('상품디테일 연결예정')" style="border-bottom: 3px dotted #5cd7f2; margin-top: 20px; padding-bottom: 10px">
                     <div class="row">
                      <div class="col-md-3" style=" padding: 0">
                        <img src="https://news.koreadaily.com/data/photo/2023/03/10/202303040941779270_6404a4b927e18.jpg" alt="spcFuck" 
                        style="width: 100%; height: 100%; margin: 0" />
                       </div>
              <div class="col-md-9">
                <h3>${title}</h3></br>
                <h4>${data[i].price}원</h4>  
                <h6>${timeAgo}</h6>
                <span>조회: ${data[i].viewCount}회</span>
                <span style="float: right;">🎯 ${data[i].dealCount} ❤${data[i].likes}</span>
              </div>
            </div>
          </div>`;
      }
      document.getElementById('bb').innerHTML = temp;
    })
    .catch((error) => {
      alert(error.response.data.message);
      window.location.reload();
    });
}

검색하는 기능을 하는 함수인데 다른 팀원이 만든 코드이다. -> 쿼리스트링을 이용해서 검색창에 쓴 search를  api로 날려서 find로 찾는 과정을 담고있따.

반응형

'취업전 끄적 > 개발일지' 카테고리의 다른 글

3/20  (0) 2023.03.20
3/14  (0) 2023.03.14
3/9 최종#7  (0) 2023.03.09
3/8 최종 기억안남  (0) 2023.03.08
3/7  (0) 2023.03.07
반응형

지금은 Sevice에서 Exception을 사용해서 서비스에서 status 코드하고 에러를 보내주는데.... 

일단은 여기서 보내도 프론트에서 401,403,404에러를 잘 받아준다.... 

튜터님의 이야기에 따르면 실무에서 Service에서 보내는 사람이 반 정도 된다고 한다.....

나중에 controller에서 보내는 방법을 해야 겠다.

 

반응형

'취업전 끄적 > 개발일지' 카테고리의 다른 글

3/14  (0) 2023.03.14
3/13  (0) 2023.03.13
3/8 최종 기억안남  (0) 2023.03.08
3/7  (0) 2023.03.07
3/6 최종프로젝트 #4  (0) 2023.03.06
반응형

axios로 서버에서 보내는 데이터를 받아서 innerHTML로 데이터를 넣는 것을 하고 있는데 가격이 제대로 나오지 않는다.....

콘솔에는 정상으로 찍히지만 왜그런지 내일 확인해봐야겠따.

반응형

'취업전 끄적 > 개발일지' 카테고리의 다른 글

3/13  (0) 2023.03.13
3/9 최종#7  (0) 2023.03.09
3/7  (0) 2023.03.07
3/6 최종프로젝트 #4  (0) 2023.03.06
3/3 최종#3  (0) 2023.03.03
반응형

오늘 쓰기 싫은 날 

프론트는 힘들다.

반응형

'취업전 끄적 > 개발일지' 카테고리의 다른 글

3/9 최종#7  (0) 2023.03.09
3/8 최종 기억안남  (0) 2023.03.08
3/6 최종프로젝트 #4  (0) 2023.03.06
3/3 최종#3  (0) 2023.03.03
3/2 최종프로젝트 #2  (0) 2023.03.02
반응형

쿠키를 decode해서 user정보를 전달하는 데코레이터
@Cookies 데코레이터를 사용한 모습

맞는지는 모르지만 @Cookies 데코레이터가 @UseGurads를 함깨 작동하는 것 같다...

반응형

'취업전 끄적 > 개발일지' 카테고리의 다른 글

3/8 최종 기억안남  (0) 2023.03.08
3/7  (0) 2023.03.07
3/3 최종#3  (0) 2023.03.03
3/2 최종프로젝트 #2  (0) 2023.03.02
2/23  (0) 2023.02.23
반응형

코드로 기능구현은 금방했지만 노션, github 문서 작성이 시간이 많이 걸린다.....

반응형

'취업전 끄적 > 개발일지' 카테고리의 다른 글

3/7  (0) 2023.03.07
3/6 최종프로젝트 #4  (0) 2023.03.06
3/2 최종프로젝트 #2  (0) 2023.03.02
2/23  (0) 2023.02.23
2/22  (0) 2023.02.22
반응형

 

최종 프로젝트로 중고거래 매칭 플랫폼을 만드는데 유저가 자신이 올린 물건들 중 팔린 물건만 보는 GET요청을 만드는데

DB설계상 배열로 나온 값의 id만 다시 조회를 해야 하는 상황이 찾아와서 기능 구현을 위해서 for문을 사용했다.

for문 말고 map이나 다른 array의 metohd를 이용하면 더 간단한 코드를 짤 수 있을 것 같은데 중간발표 후 리펙토링 할 때 수정해 봐야겠다.

아직 예외처리를 하지 않아서 정해진 더미 데이터에서만 정상 작동을 확인했다. 예외처리를 어서 해보고 수정하자.

실제 프로젝트에서 처음으로 for문을 이용한것 같다.

 

Entity설계하고 작업하는데 어제부터 오늘 오전까지 시간을 많이 사용했다.

ManyToOne 부분이 문제였는데 처음에 @Column 없어도 DB에는 productId가 생성돼있길래 된 건가 싶어서 사용해 보는데

where : {productId : id}로 찾으면 찾아지지 않았다. 

이것저것 찾아보고 내린 결론은 "ManyToOne은 관계만 생성해 주는 것이다."였다.

@Column을 추가해 주니 잘 작동이 되었다.

!!!! product: ProductsEntity 하면 db에 productId가 자동으로 생기는데 그냥 참고용 칼럼인 것 같다....

TypeORM을 문서를 읽어봐야겠다.

 

반응형

'취업전 끄적 > 개발일지' 카테고리의 다른 글

3/6 최종프로젝트 #4  (0) 2023.03.06
3/3 최종#3  (0) 2023.03.03
2/23  (0) 2023.02.23
2/22  (0) 2023.02.22
2/20  (0) 2023.02.20
반응형
nest g resource [name]

nest에서 crud 까지 전부해서 만들어주는 갓 명령어

 

decorator

JS에서는 없었지만 다른 프로그램 언어에서는 많이 쓰이는 기능으로 자세한 설명은 다른 블로그를 참조하자.

@로 시작하며 nest에서 데코레이터로 구현된 코드를 함께 실행해준다.

class CreateUserDto {
  @IsEmail()
  @MaxLength(60)
  readonly email: string;

  @IsString()
  @Matches(/^[A-Za-z\d!@#$%^&*()]{8,30}$/)
  readonly password: string;
}

Context 컨텍스트

JS를 공부하면서 실행 컨텍스트를 많이 들었는데 그 컨텍스트와 다르다. Guard를 사용할때 쓰였다.

 

https://docs.nestjs.com/fundamentals/execution-context#execution-context

https://velog.io/@from_numpy/NestJS-Execution-context-docs%EB%B2%88%EC%97%AD

 

[NestJS] Execution context __docs(번역)

NestJS를 학습하며 "가드(Guard)"를 구현하는 과정에서 "Execution context(실행 컨텍스트)" 라는 키워드를 통해 특정 라우터에 원하는 가드를 적용시켜줄 수 있다는 것을 알게 되었다.내가 아는 "실행 컨

velog.io

 

Documentation | NestJS - A progressive Node.js framework

Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Progamming), FP (Functional Programming), and FRP (Functional Reac

docs.nestjs.com

 

반응형

'취업전 끄적 > 개발일지' 카테고리의 다른 글

3/3 최종#3  (0) 2023.03.03
3/2 최종프로젝트 #2  (0) 2023.03.02
2/22  (0) 2023.02.22
2/20  (0) 2023.02.20
2/17  (0) 2023.02.17
반응형

Scale-Out / Scale-Up

서버가 한계에 도달했을 때  해결하는 방법 (접속자 수가 너무 많아서 백엔드 서버 컴퓨터가 못따라갈때)

Scale-Up : 사양 업그레이드 -> 디스크 추가, cpu 업그레이드, 렘추가 등

Scale-Out : 백엔드서버 추가 : 같은 기능을 하는 컴퓨터 추가 

Scale-Up은 한계가 있는 방법이고  Scale-Out은 단점이 있지만 계속 추가가 가능한 방법이다.

 

stateful / stateless -> session관련

stateful 세션이 종료될때까지 세션의 정보를 저장하는 프로토콜 -> 서버가 저장

stateless 서버가 세션정보를 서버에 저장하지 않는

 

https://wooono.tistory.com/366

 

양방향 암호화 (복호화 가능) 

단방향 암호화 (복호화 불가능) = 해싱  -> 

반응형

'취업전 끄적 > 개발일지' 카테고리의 다른 글

3/2 최종프로젝트 #2  (0) 2023.03.02
2/23  (0) 2023.02.23
2/20  (0) 2023.02.20
2/17  (0) 2023.02.17
2/15  (0) 2023.02.15
반응형

nest 기본 CRUD를 어느정도 익혔다 생각이 된다.

class-validator와 class-transformer를 이용해서 유효성검사를 쉽게 할 수 있다.

DTO에 decorator를 이용해서 원하는 유효성 검사를 넣을 수 있다.
@UsePipes 데코레이터를 이용해서 위의 유효성 검사를 연결해서 사용이 가능하다.

 

반응형

'취업전 끄적 > 개발일지' 카테고리의 다른 글

2/23  (0) 2023.02.23
2/22  (0) 2023.02.22
2/17  (0) 2023.02.17
2/15  (0) 2023.02.15
23/2/10  (0) 2023.02.13

+ Recent posts