본문 바로가기

개발(Development)/JS(자바스크립트)80

[Node.js] javascript로 python 연동 호출 오류: Module Not Found Error Node.js환경, Express 웹서버 환경 등에서 파이썬 스크립트 호출 시, 보통 child_process의 spawn을 사용한다. const spawn = require('child_process'); const result = spawn('python', ['파이썬파일.py']); result.stdout.on('data', function(pythonResult){ console.log(pythonResult.toString()); }); 위 코드는 node.js 환경에서 "python 파이썬파일.py" 명령어를 실행한다.,(자세한 내용은 아래 글 참고) [Node.js] 자바스크립트로 파이썬 연동 실행 방법(함수 매개변수 전달 호출 : child-process) 근데 경우에 따라 아래와 같은 .. 2021. 1. 29.
[Node.js] 자바스크립트로 파이썬 연동 실행 방법(함수 매개변수 전달 호출 : child-process) # Node.js환경에서 javascript로 python 스크립트를 실행하는 방법 => node의 기본 내장 모듈인 "child-process" 를 사용하면 된다. (python-shell 등의 외부 라이브러리를 사용할 수도 있긴 하다.) 이번 글에서는 아래의 사항을 순서대로 정리한다. 1. 기본 사용법 2. 자바스크립트로 "파이썬 파일 실행" 방법 3. 자바스크립트로 "파이썬 함수 실행" 방법 4. 자바스크립트로 "파이썬 함수에 인수 전달" 호출 방법 # 기본 사용법 1. 실행 : child-process 모듈의 spawn을 통해 파이썬 파일을 실행한다. const result = require('child_process').spawn('python', [ '파이썬파일.py', '매개변수1', '매개.. 2021. 1. 27.
node.js 서버배포 후, https 리소스 요청으로 화면 깨지는 문제 해결 방법(helmet 모듈) # 문제 현상 node.js 웹서버를 배포, 기동 후 접속했는데, CSS, JS, 이미지 리소스 로드에 실패하여 화면이 깨지는 현상이 발생할 때가 있다. (자바스크립트를 로드하지 못해서 웹페이지 자체가 작동을 안 하기도 한다) 브라우저 개발자도구의 network탭을 보면, CSS, JS, 이미지 등을 모두 HTTPS로 요청하면서 리소스를 불러오지 못해 에러가 발생하는 케이스일 가능성이 있다. 이 경우, node.js의 미들웨어에 helmet 모듈을 장착한건 아닌지 확인해보자. app.use(helmet()); helmet 모듈은 웹 취약성으로 부터 웹서버를 보호하는 역할을 하는데, 내부적으로 다음의 코드를 실행한다. app.use(helmet.contentSecurityPolicy()); app.use(.. 2021. 1. 25.
node.js puppeteer 리눅스VM 실행 불가 해결 방법(CentOS, 우분투): Failed to launch the browser process AWS, GCP, Azure 와 같은 클라우드 VM환경에서 puppeteer 패키지(모듈)을 사용하면 에러가 발생하는 경우가 많다. (내 컴퓨터 개발환경에선 잘 되는데, 우분투나 CentOS 환경의 클라우드에 배포하면 안 될 가능성이 높다.) 원인과 해결책을 정리해본다. # 해결책1: 기본 모듈 설치 1. puppeteer 설치 : sudo npm install puppeteer (참고) puppeteer를 설치하면 자동으로 Chromium 브라우저가 다운로드 된다. 2. puppeteer-core : sudo npm install puppeteer-core 그러나, 설치한 이후에도 아래와 같은 에러 메시지가 뜨는 경우가 많을 것이다. Failed to launch the browser process! .. 2021. 1. 24.
[자바스크립트] html table 태그 행(tr) 개수 파악 방법(+ 전체 행 삭제) 자바스크립트만으로 table태그의 행 갯수를 파악하고, 특정 행이나 전체 행을 삭제할 수 있다. # HTML table 행 갯수 파악 방법 : table태그.rows.length [HTML코드] table 태그의 id 값을 'myTable'로 주었다. 항목 가격 사과 1,000 귤 500 [Javascript코드] table태그를 취득 후, 행의 개수를 숫자로 출력한다. const $table = document.getElementById('myTable'); // table 엘리먼트 취득 console.log($table.rows.length); // 3, 행 갯수 출력 테이블의 행을 삭제할 때, 아래와 같이 활용할 수 있다. # HTML table 행 전체 삭제 방법 : table태그.deleteRo.. 2021. 1. 23.
[자바스크립트] HTML input 입력창 자동 포커스, 커서 마지막 설정 방법 HTML input에 focus주고, 마지막 글자에 커서 위치 1. input 입력창의 자동 포커스 설정 방법 : input 태그의 속성으로 autofocus를 주면 된다. 결과: 포커스된 커서가 맨 앞으로 간다. 2. input 커서를 텍스트 마지막으로 위치시키는 방법 원리는 동일하다. input 태그에 포커스를 주면서, value값을 새로 넣어주면 된다. 1) 첫번째 방법: input태그에 autofocus 설정된 경우. const $input_01 = document.getElementById('input_01'); // input 태그 취득 $input_01.value = "js로 추가한 value"; // input 태그의 value에 새로운 값 설정 2) 두번째 방법: input태그에 auto.. 2021. 1. 16.
[자바스크립트] 입력값 체크(한글, 영문, 특수문자, 공백 정규식 활용) 정규표현식의 기본/기초에 대한 쉽고 상세한 내용은 아래 글 참고 [자바스크립트] 정규표현식(Regular Expression) 기초/기본 쉽고 상세한 사용 방법 정리(샘플 예제 코드) 정규표현식으로 입력값 체크 함수 정리 // 특수 문자 체크 function checkSpecial(str) { const regExp = /[!?@#$%^&*():;+-=~{}\_\[\]\|\\\"\'\,\.\/\`\₩]/g; if(regExp.test(str)) { return true; }else{ return false; } } // 한글 체크 function checkKor(str) { const regExp = /[ㄱ-ㅎㅏ-ㅣ가-힣]/g; if(regExp.test(str)){ return true; }else{ .. 2021. 1. 15.
[자바스크립트] HTML 테이블(table) 행 추가 불가 이유, 해결 방법 appendChild()로 table 태그에 tr 행을 추가 하는게 불가능한 경우가 있다. 왜 안 되는지! 어떻게 해야하는지! 이유와 해결방법을 정리해 보려고 한다. 결론부터 말하면, table엘리먼트 자체 메서드인 insertRow(), insertCell() 등을 이용하면 된다. 일반적인 table 생성 방식 보통 table > tr > td(th) 구조로 테이블을 생성한다. 제목 내용 1 2 table 태그의 행 추가 안 되는 이유 table 태그는 자동으로 tbody가 자식 요소로 추가된다. 그래서 table 태그에 tr을 추가해도 행이 추가되지 않는다. table 태그에 행 추가하는 방법 #1 (노가다 방법) : appendChild()메서드를 통해 tbody 태그의 하위요소로 tr을 추가 //.. 2021. 1. 5.
[자바스크립트] 반복문 총정리: for in, for of, forEach 등 자바스크립트의 반복문을 정리해본다. # 자바스크립트 반복문 종류 1. for : 고전적인 for문 2. for in : 객체의 프로퍼티 키 열거 전용 3. for of : 이터러블 순회 전용 4. forEach(): 배열 순회 전용 메서드 5. while : 고전적인 while문 6. do while : 고전적인 do...while문 7. Object 객체 메서드: 객체 순회 전용 8. Array.prototye 메서드 : 배열 전용 하나씩 코드와 함께 정리해본다. # 자바스크립트 반복문 총정리 1. for 문: 고전적인 for문 => for(let i = 0; i < 10; i++){...반복 수행 코드...} for (let i = 0; i < 10; i++){ console.log(i); // 0~.. 2020. 12. 12.