programing

Javascript/Node로 작성된 긴 SQL 문을 구성하는 방법

minecode 2022. 10. 31. 21:22
반응형

Javascript/Node로 작성된 긴 SQL 문을 구성하는 방법

SQL 데이터베이스에 외부 호출을 하는 마이크로 서비스를 작성했습니다.문자열로 형성된 이 무시무시한 쿼리 전용 js 파일이 있습니다.

let data_example = 'SELECT * \
WHERE BLAH = BLAH AND \
....';

사람이 거의 읽을 수 없고 보기에도 끔찍하다.노드에 저장 및 호출해야 하는 긴 SQL 쿼리 문자열을 저장/정리 또는 접근하는 가장 좋은 방법은 무엇입니까?

몇 가지 옵션이 있습니다.

  1. 프로그램을 시작할 때 읽은 파일에 저장할 수 있으므로 SQL을 이해하고 DB에 연결하여 자동 완성하거나 포맷, 구문 강조 표시 등을 수행할 수 있습니다.

  2. ES2015("ES6") 템플릿 문자열("템플릿 리터럴")을 사용할 수 있습니다.

    let data_example = `
        SELECT *
        WHERE BLAH = BLAH AND ...
    `;
    

    템플릿 문자열은 행을 포함할 수 있습니다(새로운 행과 후속 행의 선두에 있는 공백은 문자열의 일부입니다).

    템플릿 문자열의 기능을 사용하여 (숨김) 문자열 연결을 통해 매개 변수를 입력하지 마십시오. That Would Be Wrong™. :-) 즉, 다음과 같이 하지 않습니다.

    // We know NOT to do this
    example = "WHERE SomeColumn = '" + userInputValue + "'";
    

    템플릿 문자열의 숨겨진 문자열 연결을 사용하여 동일한 작업을 수행하지 마십시오.

    // We also know NOT to do this
    example = `WHERE SomeColumn = ${userInputValue};`
    

    ......템플릿 문자열을 사용하여 문자열을 연결하는 방법입니다.템플릿 문자열을 자주 사용하는 경우 실수로 SQL Injection 벡터를 사용하기 쉽습니다.

두 옵션 모두 사용 사례가 있을 수 있습니다.

언급URL : https://stackoverflow.com/questions/37945671/how-to-organize-a-long-sql-statement-written-in-javascript-node

반응형