knex란?
- nodejs의 ORM 모듈 중 하나이다.
- ORM은 Object Relational Mapping(객체 관계 매핑)의 줄임말이다. Object(객체)는 말 그대로 OOP에서 사용되는 객체 그 자체를 의미하고 Relational(관계)는 흔히 사용하는 관계형 데이터베이스를 의미한다. 즉 객체와 관계형DB를 매핑해주는 개념이라고 생각하면 된다.
- 원래 관계형 DB를 사용하기 위해선 SQL을 사용해야했다. 하지만 어플리케이션 코드짜는것도 머리아픈데 DB쿼리까지 신경쓰려면 머리가 두 배로 아플 것이다. 이럴 때 ORM은 이런 불편함을 해소해준다.
- 파이썬(장고)으로 예를 들자면 작성한 파이썬 코드를 관계형 DB의 SQL 쿼리로 자동 변환 시켜서 개발자가 따로 SQL 쿼리를 작성할 필요 없이 파이썬 코드 작성만으로 DB를 조작할 수 있게 해 준다.
- Knex.js는 유연하고 휴대하며 사용하기 쉽도록 설계된 Postgres, MSSQL, MySQL, MariaDB, SQLite3, Oracle 및 Amazon Redshift용 "batteries included" SQL 쿼리 작성기이다.
- 기존의 노드 스타일의 callbakc 뿐만 아니라 더 깨끗한 비동기 흐름 제어, 스트림 인터페이스, 완전한 기능을 갖춘 쿼리 및 스키마 빌더, 트랜잭션 지원(저장 지점 포함), 연결 풀링 및 서로 다른 쿼리 client와 dialect간의 표준화된 응답을 위한 약속 인터페이스를 모두 갖추고 있다.
https://bny9164.tistory.com/24
https://www.kyungyeon.dev/posts/3
https://tibetsandfox.tistory.com/17