[node.js] formatting, linting

2022. 7. 19. 18:32·개발/node.js
728x90
반응형

1. npm 설치 관련

 

[1] Formatting

node 프로젝트를 여러멍이나 개인이 작업하다보면 예상하지 못한 오류가 생겼을때 찾아내기가 힘들다.

formatting은 런타임 코드를 이용자에게 전달하기 전에 문제를 잡아준다. ex) Prettier

 

formatting을 해주는 Prettier 패키지 설치 명령어

npm install --save-dev prettier

--save-dev : 우리가 프로젝트를 개발할때만 사용할 패키지

 

npm패키지를 설치하면 package.json에 내용이 추가되고

package.json의 중요한 역할중에 하나는 메타데이터를 표현하는것도 있다.

현재 프로젝트가 사용하는 의존성 내용을 나열하는 것에도 목적이 있다.

 

node_modules 폴더는 git에 따로 올리지 않고 package.json만 올리고 npm i 나 npm install로 설치 후 작업한다.

 

package-lock.json에 기록되어 있는 내용은 실제로 설치된 패키지들이 어떤것인지 알려준다.

팀에서 이 프로젝트를 같이 작업을 한다 하면 lock.json도 같이 업로드 해주는것이 좋다.

package.json에 패키지의 버전앞에 ^표시가 있는데 이뜻은 정확하지 않아도 설치되게 만들어준다.

 

팀원끼리의 버전이 차이가 날수 있다 => 그래서 lock.json파일을 서로 공유해아 한다.

 

node_modules파일도 생겼는데 npm설치를 하니까 이 폴더안에 설치되어 있는 

.bin폴더를 제외하고 다른 폴더들은 현재 프로젝트가 의존하고 있는 패키지들

.bin폴더는 컴퓨터가 이해할 수 있는 텍스트 파일(바이너리파일)들이다.

 

formatting

설치한 prettier를 사용해서 프로젝트 단위로 설정하기

.prettierrc 파일 만들어주기

.vscode 폴더의 settings.json 만들기

이곳에 설정한 이유는 개인이 사용하는 vscode 설정 말고 프로젝트 단위로 설정을 적용시킬수 있다.

팀이나 회사에서 작업을하면서 설정 값을 미리 정해놓고 작업을 시작하면 병합시 충돌을 덜어준다.

Linting

Linting : 규칙이 어긋났을때 알려주는 예

ESLint 설치 명령어

npm install --save-dev eslint

=> lock.json에 많이 생기는데 의존성들(서브 디펜던시)

의존성의 뜻은 코드에서 두 모듈간의 연결이라고 보면 된다. 클래스가 두개있다면 두 클래스의 관계성

 

eslint도 설정파일이 필요한데 이 설정 파일은 확장자가 필요하다.

설정파일 이름은 .eslintrc.js

마켓플레이스에서 ESLint 설치

 

rc의 뜻 

runtime configuration

runcontrol

run commands

run com

resource control

 

세팅 설정

미리 좋은 세팅들이 많으니 있는걸로 쓰는거 추천. 나는 air bnb설정 쓸거임.

https://github.com/airbnb/javascript 에서 구경
 
air bnb 패키지 설치 명령어
 
npm install --save-dev eslint-config-airbnb-base
npm install --save-dev eslint-plugin-import
 
두개를 한번에 받으려면 띄어쓰기로 구분한다.
 
npm install --save-dev eslint-config-airbnb-base eslint-plugin-import
 
--save-dev 로 받은 패키지는 devDependencies에 작성된다.
개발에만 필요하고 실제 구동은 필요없는 것들
 
eslint에도 prettier를 받아줘야 한다.
 
eslint prettier package 다운 명령어
 
npm install --save-dev eslint-config-prettier
 
prettier와 충돌이 많이 뜬다.
이때 .eslintrc.js 폴더안에 
module.exports = {
  extends: ["airbnb-base", "plugin:node/recommended", "prettier"],
};

위와 같은 코드를 입력해주면 된다.

 

node 전용 플러그인 설치 명령어

npm install --save-dev eslint-plugin-node

 

js 첫줄에 

// @ts-check (주석포함해서 작성)

을 작성하여 타입을 잡아준다.

 

2. MySQL

MySQL은 콜백기반이기 때문에 promise를 사용하지 못하고 이를 보완한다면 promise-mysql을 설치해서 사용해야 한다.

MySQL은 promise를 지원하기 때문에 바로 써도 된다.

 

const mysql = require("mysql2");

const temp = mysql.createConnection({
  user: "root",
  password: "설정한 비밀번호",
  database: "데이터베이스",
});

temp.query("SELECT * FROM posts", (err, res) => {
  if (err) {
    console.log("안됨");
  } else {
    console.log(res);
  }
});

 

createConnection 옵션

host : 연결할 호스트

port : 연결할 포트

user : 사용자 이름

password : 사용자 비밀번호

database : 연결할 데이터 베이스 이름

debug : 디버그 모드를 사용할 것인가

 

MySQL 다운

https://shinysblog.tistory.com/20

다운 후 

programfiles > MySQL > server8.0 > bin 경로 복사

내 pc> 고급시스템 설정 > 고급 환경변수 > 시스템 변수 > Path 찾아서 편집 > 새로만들기 > 경로 붙여넣기

 

cmd 키고 

mysql -u 접속할 유저이름 -p

기본값 유저이름 : root

 

현재 있는 데이터베이스 리스트 보는 명령어

show databases;

 

데이터베이스 생성

CREATE DATABASE 테이블명 CHARACTER SET utf8;

 

사용할 데이터 베이스 선택

use 데이터베이스명;

 

name테이블 선택

select * from name;

 

테이블에 컬럼 추가 쿼리문

INSERT INTO '데이터베이스 이름'.'테이블이름'('id','content') VALUES ('1','ㅎㅇ');

 

테이블에 컬럼 삭제 쿼리문

DELETE FROM '데이터베이스 이름'.'테이블이름' WHERE ('id' = '1');

 

테이블에 컬럼 수정 쿼리문

UPDATE '데이터베이스 이름'.'테이블이름' SET 'content' = '안녕' WHERE ('id' = '1');

728x90
반응형

'개발 > node.js' 카테고리의 다른 글

[Node.js] socket.io 로 채팅방 만들기  (0) 2022.07.26
[Node.js] 삭제, 수정버튼 만들기  (0) 2022.07.26
[node.js] express, MySQL  (0) 2022.07.25
Node.js 핵심개념  (0) 2022.07.20
[node.js] node.js  (0) 2022.07.19
'개발/node.js' 카테고리의 다른 글
  • [Node.js] 삭제, 수정버튼 만들기
  • [node.js] express, MySQL
  • Node.js 핵심개념
  • [node.js] node.js
TeTedo.
TeTedo.
  • TeTedo.
    TeTedo 개발 일기
    TeTedo.
  • 전체
    오늘
    어제
    • 분류 전체보기 (319)
      • 개발 (274)
        • Article (4)
        • 정리 (21)
        • Spring Boot (17)
        • JPA (2)
        • JAVA (6)
        • Database (4)
        • 자료구조 (11)
        • 알고리즘 (32)
        • React (20)
        • Docker (10)
        • node.js (18)
        • Devops (11)
        • Linux (4)
        • TypeScript (3)
        • Go (10)
        • HyperLedger (4)
        • BlockChain (43)
        • html, css, js (48)
        • CS (3)
        • AWS (3)
      • 모아두고 나중에 쓰기 (3)
      • 팀프로젝트 (18)
        • SNS(키보드워리어) (9)
        • close_sea (9)
      • 개인프로젝트 (1)
        • Around Flavor (1)
        • CHAM (13)
        • ethFruitShop (5)
      • 독서 (0)
        • 스프링부트와 AWS로 혼자 구현하는 웹 서비스 (0)
  • 블로그 메뉴

    • 홈
    • 개발일기
    • CS
    • 실습
    • 코딩테스트
    • 웹
    • Go
    • node.js
    • 팀플
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    erc20
    도커
    React
    node.js
    30일 챌린지
    블록체인
    ERC721
    명령어
    go언어
    js
    nodejs
    컨테이너
    하이퍼레저
    CSS
    go
    node
    html
    30일챌린지
    프로그래머스
    mysql
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
TeTedo.
[node.js] formatting, linting
상단으로

티스토리툴바