반응형

개발 창고/NodeJS 35

[가비아] NodeJS 설치

이 버전에서는 TOC를 지원하지 않습니다. (ex. 모바일) 이전에 AWS에서 NodeJS를 설치했었는데, 이번에 가비아에 설치해 볼 일이 있어서 기록하며 남겨봅니다. 2023.02.14 - [개발 창고/Server] - [AWS] NodeJS 설치 [AWS] NodeJS 설치 1/ nvm 설치 # curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash 2/ nvm 활성화 # . ~/.nvm/nvm.sh 3/ node 17.6버전 설치 # nvm install 17.6 ※ 최신lts 버전 설치시 # nvm install --lts 4/ node 버전 확인 # node royzero.tistory.com 1. NVM 설..

[NodeJS] How to convert from PDF to image

1. 프로젝트 생성 2. 파일 생성 3. 테스트 파일 생성 4. 실행 프로젝트 명 pdf2img 사용 API pdf-poppler PDF 파일 공공데이터관리지침개정안.pdf 프로젝트 정보 1. 프로젝트 생성 /> mkdir pdf2img /> cd pdf2img /> npm init 중간중간 엔터 열심히 쳐 주면 됩니다. /> npm i pdf-poppler 2. 파일 생성 /** * PDF를 이미지로 출력 * npm i pdf-poppler */ const path = require('path'); const pdf = require('pdf-poppler'); // Step. Constants const filePdf = '공공데이터_관리지침_개정안.pdf' // Input PDF File const..

[NodeJS] How to import MS-SQL and use Connection Pool

1. module 추가 2. import 3. config 설정 4. Connection Pool 생성 5. Query 실행 전체 테스트 소스 1. module 추가 /> npm install mssql mssql 모듈을 추가해 줍니다. 2. import const sql = require('mssql'); 여기에서는 CommonJS로 이야기할 예정이므로 require를 사용합니다. 3. config 설정 const config = { server: 'MSSQL서버IP' , port: 1433 , options: { encrypt:false, database: '데이터베이스명', connectTimeout:15000 } , authentication:{ type:"default" , options:{ u..

[NodeJS] How to use multiple versions

How to use multiple versions 1. NVM 설치 2. NVM 설치 확인 3. 버전 설치 4. 설치 된 버전 목록 확인 5. 사용 할 버전 선택 6. 현재 버전 확인 7. 설치 가능한 버전 목록 확인 How to use multiple versions 노드를 사용하다 보면 여러 버전으로 사용해야 하는 경우가 있습니다. 특히나 협업 관계에서 각자 사용하는 개발 환경이 다르다 보면 먼저 업그레이드 하기도 애매하고 그렇다고 그냥 기존 버전을 유지하기도 애매한 경우가 발생하곤 합니다. 이때 사용하면 좋은게 NVM입니다. 1. NVM 설치 먼저 아래 사이트에서 최신 버전을 NVM 최신 버전을 다운 받아 줍니다. https://github.com/coreybutler/nvm-windows/rel..

[NodeJS] PayloadTooLargeError: request entity too large

express에 editor에서 전달된 정보를 전달하다 보니 위와 같은 오류가 발생하였습니다. 이는 request의 payload (Post의 request body) 내용을 파싱 할 때 발생하는 에러입니다. request body를 parsing하는 기본 값은 100kb이므로 이상의 데이터에 대해서는 위와 같이 오류를 발생하게 됩니다. 가장 베스튼느 100kb 이하로 통신을 하는 게 좋겠지만, 만약 상황이 여의치 않은 경우 해당 limit를 풀어주어야 합니다. 위와 같이 limit를 20mb로 해주면 request body의 최대 제한 용량은 20MB로 변경되게 됩니다.

[FS] 파일 복사

// filecopy.js const fs = require('fs'); (async () => { fs.copyFile('origin.txt', 'copied.txt', err => { if(err) throw err; console.log('origin.txt파일이 copied.txt파일로 복사되었습니다.'); }); })(); fs.copyFile("원본파일", "복사될파일", callback함수) 만약 아래와 같이 origin.txt파일이 실행하려는 파일 filecopy.js와 같은 폴더에 존재한다면 아래 명령어를 실행하면 console.log에서 적어둔 message가 출력되면서 아래와 같이 copied.txt파일이 생성됨을 확인할 수 있습니다. callback은 굳이 필요 없는 경우 생략해도 ..

[React] map에서 숫자 FOR문 사용하기

Array(100).fill(0).map((_, i) => { console.log(i); }) 일반적으로 0에서 100까지 반복문을 수행하는 경우에는 아래와 같이 선언하여 사용하곤 합니다. for(let i = 0; i < 100; i++){ console.log(i); } 하지만 React에서 render에서 select의 option값으로 1~100까지의 옵션을 넣고 싶은 경우 return 내에서 for문을 사용할 수 없으므로, 아래와 같이 사전에 option element배열로 만들어 반환하곤 합니다. 하지만, 아래와 같이 강제로 0으로 채워진 n개의 배열을 만들어 for문과 동일할 결과를 가져오도록 수행할 수도 있습니다.

[Puppeteer] iframe 클릭하기

const frameHandle = await page.$("iframe"); const frame = await frameHandle.contentFrame(); const input = await frame.$eval("input[name=input2]", ele => ele.value); 데이터를 자동으로 수집하거나 입력 또는 클릭 등의 수행을 하기 위해서 주로 puppeteer를 사용합니다. 기존 글에서 puppeteer에 대해서 다룬 글들이 있으니 참고하셔도 좋습니다. 2022.10.03 - [개발 창고/NodeJS] - [Puppeteer] Element Exists [Puppeteer] Element Exists // 아이템 체크 let exists = false; try { // 현재 se..

반응형