🪢node/node 이론 정리 16

nodemon을 통해 서버 변경사항 바로 적용가능

예전에 node.js 공부할 때는 코드 바뀔 때마다 다시 서버를 끄고 실행해줫어야 했는데 지금은 안그러네... 왜일까? 그냥 코드 바뀌면 다시 서버가 재실행 되면서 적용된다. 이유는 그저 외국인 코더가 설치하라고 한 라이브러리 Nodemon 덕분이었다. Nodemon?? nodemon은 Node.js 애플리케이션을 개발할 때 사용되는 유틸리티로, 파일 시스템의 변경을 감지하고, 변경이 감지될 때마다 자동으로 Node.js 애플리케이션을 재시작해 줍니다. 이를 통해 개발자는 코드를 변경할 때마다 수동으로 서버를 중지하고 재시작할 필요 없이, 변경사항을 빠르게 테스트하고 반영할 수 있습니다. nodemon은 npm을 통해 쉽게 설치할 수 있으며, 프로젝트의 의존성으로 추가하거나 글로벌로 설치하여 사용할 수 ..

그냥 공부하다 궁금해서 찾아봄(csr, ssr)

아래는 챗gpt에 질문하고 얻은 대답을 기록한 글입니다. (아래 링크에 직접 구현해보고 비교해본 글이 있으니 확인.) https://elecch.tistory.com/571 React의 상태관리(데이터 변경)[csr ,ssr 코드 비교를 통한 이해] 결론. csr [ 클라이언트에서 부모 컴포넌트가 상태관리(db관리) / 바뀌는상태 값만 관리 대상이고, html 요소 즉 jsx 들은 안바뀌고 가상돔이 차이나는 상태만 새로 렌더링] ssr[ 서버에서 db관리 , db값 elecch.tistory.com 나의 질문 지금 내가 공부하면서 느낀게 node.js에서 필요해서 react가 나온것 같은데.. 이렇게 느낀이유가 기존에 ssr로 화면딴을 구성하다가 뭔가 html에 js를 끼워넣기가 모종의 이유로 좀 그래서..

bodyParser 정리하기

const bodyParser = require('body-parser') // 선언 app.use(bodyParser.urlencoded({extended: false})); // URL-encoded 형태의 요청 본문을 파싱할 수 있게 설정 extended : true or false ???? extended: false: querystring 라이브러리를 사용하여 URL-encoded data를 파싱합니다. 단순한 문자열과 배열만 지원합니다. 복잡한 객체 구조를 처리하는 데는 적합하지 않습니다. extended: true: qs 라이브러리를 사용하여 URL-encoded data를 파싱합니다. 복잡한 객체 및 배열 구조도 지원합니다. 보다 복잡한 데이터 구조를 처리하는 데 사용됩니다. 대부분의 경우..

express.js (get, post, nunjuck 이해해보기)

1. get.js express 모듈을 활용하여 get을 구현한 모습니다. const express = require('express') const app = express(); const courses = [ {id: 1, game: '카스', maker: '고대발잡이' }, {id: 2, game: '카스', maker: '채리콥터' }, {id: 3, game: '디지몬rpg', maker: '윤팡구' }, {id: 1, game: 'non', maker: '김계정' }, ] app.get('/', (req, res) => { res.send('Hello park') }) app.get('/course', (req, res) => { res.send('courses') }) app.get('/cou..

라우팅(Routing)

페이지 라우팅은 클라이언트 요청에 적절한 페이지를 제공하는 기술. request는 클라이언트측의 요청내용을 담는 공간 response는 서버가 받아서 다시 전송할 내용을 담는 공간 const express = require('express') const app = express(); app.get('/page/:id', (request, response) => { const id = request.params.id; response.send(`${id}`) }) app.listen(52773, () => { console.log('http://127.0.0.1:52773') }) 원하는 페이지에 원하는 글자가 다시 서버로부터 전송되어 출력된 모습을 확인할 수 있다. :id 는 토근이다. 왜 'page/i..

request

1.request 정의 및 특징 request는 Node.js를 위한 간단한 HTTP 클라이언트 라이브러리입니다. 이 라이브러리를 사용하면 Node.js 애플리케이션 내에서 HTTP 및 HTTPS 요청을 손쉽게 보낼 수 있습니다. request 라이브러리의 주요 특징: 1.간결한 API: URL만 제공해도 기본 GET 요청을 보낼 수 있습니다. 2.다양한 요청 타입 지원: GET, POST, PUT, DELETE 등의 HTTP 메서드를 지원합니다. 2.코드실행 사전작업: npm install request 아래의 코드를 통해 naver의 html 코드정보를 요청해서 불러왔다. const request = require('request'); const url = 'https://naver.com/.html..

async.waterfall([])[]안의 함수들을 callback 매개변수로 순서대로 실행

async.waterfall([]) 사전작업: npm install async 설치. 기능: 순서대로(동기적으로) 함수들이 실행됨. null은 callback()에서 함수가 에러일 때의 상황을 결정하는 변수이다. null이 있으니 에러가 있을 때도 아무반응이 없다고 하는것. const async = require('async'); let timestamp = new Date().getTime(); async.waterfall([ function (callback) { // callback 매개변수는 순서대로 함수실행을 위한 통로임. setTimeout(function (){ console.log('one'); callback(null,'one')//실행이 되야 다음 함수로 넘어감. },2000); }, ..

동기적으로 파일 읽어들이기

Sync를 뒤에 붙이면 동기적이라는 의미를 나타내게 된다. fs의 메소드 중 하나인 readFileSync()를 사용해보았다. 아래처럼 textFile.txt도 준비함. 1.file 변수 출력 const file = fs.readFileSync(__dirname + '/textFile.txt') const file2 = fs.readFileSync(__dirname + '/textFile.txt',{encoding:'utf-8', flag:'r'}) console.log(file) console.log(file.toString()) 2. file2 변수출력 encoding: 'utf-8'을 옵션으로 주었기 때문에, readFileSync는 파일의 내용을 'utf-8' 인코딩의 문자열로 바로 반환합니다. ..

스프레드연산자 || 얕은/깊은복사 || REST 파라미터

스프레드연산자 기능 1.구조 분해 할당에서 나머지 속성들을 모으는 용도로 사용. 2.객체나 배열을 확장(복사)할 때 사용. 객체 복사하는 방법(참조 방식에서 벗어나기 위한 방식 ) 스프레드 연산자를 통해 객체나 배열의 요소들만을 불러올 수 있다. 응용1 스프레드 연산자를 통한 배열 결합 let test = () => { const aaa = [1,2,3] const bbb = [3,4,5] const arr = [...aaa, ...bbb] console.log(arr) } test() 응용2 요소들 한개만 불러오기(객체의 값만 빼옴)(중복이던 3이 없어짐) let test = () => { const aaa = [1,2,3] const bbb = [3,4,5] const arr = [...aaa, ....