본문 바로가기

SCRIPT/NODE JS

[NODEJS] NPM 버전 에러 : npm does not support Node.js nodejs 버전을 최신화하게 될 경우에, ( 또는 어떠한 경우에라도 ) NPM 버전과 NODEJS 버전이 맞지않아서 아래와 같은 에러가 발생하면서, NPM 관련 작업이 진행되지 않는 것을 확인할 수 있는데, 버전이 안맞는 문제이므로, 버전을 맞추어 주어야 한다. 1. nodejs 완전 삭제 후, 재설치 > 라는 아주 단순하면서, 깔끔한 방법이 있다. 하지만 위와 같은 방법을 쓰지 않고, 아래의 방법으로, 진행할 수 있다. 2. NPM 명령어가 동작하지 않는 상황에서 NPM 으로 업데이트 하기. > 이미 npm 버전이 맞지않아서, 아래의 명령어에도 위와같은 버전이 맞지 않는다는 에러가 발생한다. npm install -g npm@latest 그런 상황일때, 윈도우 기준 : C:\Users\qwer\App.. 더보기
[NodeJS] Error: EPERM: operation not permitted, ... [NodeJS] Error: EPERM: operation not permitted, ... npm install 로 모듈 최신화 및 인스톨을할때 발생할 수 있는 에러이다. 해당 에러는 파일이 읽기전용이되거나, 잠긴 현상으로 인한 문제로. --force 옵션을 이용해 해당 문제를 해결 할 수 있다. npm install --force https://stackoverflow.com/questions/39293636/npm-err-error-eperm-operation-not-permitted-rename npm ERR! Error: EPERM: operation not permitted, rename When I execute npm install I get this error npm ERR! Error:.. 더보기
[Nodejs] Express Middleware 유형 Express Node.js 웹 프레임워크. Web Application 이나 API 서비스 개발을 위해 설계되었으며, 가장 많이 사용되는 웹 프레임워크 중 하나. * Koa 등의 다양한 웹 프레임워크가 존재하며, 필요와 선택에 따라서 웹 프레임워크를 사용하면 될 것 같다. MiddleWare 네트워크를 통해서 연결된 여러개의 컴퓨터에 있는 많은 프로세스들에게 어떤 서비스를 사용할 수 있도록 연결해주는 소프트웨어. * 웹 서비스 기준으로 쉽게말해서 [ 클라이언트 - 미들웨어 - 서버 ] 사이에서 데이터를 읽고, 쓰고, 처리해주는 중간 역활을 하는 소프트웨어라고 볼 수 있겠다. Express는 자체적인 최소한의 기능을 갖춘 라우팅 및 미들웨어 웹 프레임워크이며, Express 애플리케이션은 기본적으로 일련.. 더보기
[NODEJS] Express Header 정보 숨기기 Express 모듈은 Nodejs 개발에서 빠질 수 없는 웹 프레임워크이다. 거두 절미하고 본문을 이야기해보자면, 아래의 예시를 보면 될 것 같습니다. Express 에서 X-Powered-By 를 통해서, 사용자들은 쉽게 이 서비스는 어떤 웹 프레임워크와 기술을 이용해서 개발되었구나~ 하고 아주 쉽게 잘 표현해주고 있다. 사실 일반사용자에게는 보여줄 필요없는 항목이기도하며, 저 항목을 유심히 보는 사람이 이 시스템을 개발한 개발자는 아닐테니, 공격자에게는 침투하기 좋은 힌트가 될 수 있을 것이다. 모든 소스와 로직은 클라이언트에서 보여주지 않는 것이 바람직하니, 해당 정보를 숨기도록 하겠습니다. // X-Powered-By 막기 app.disable('x-powered-by'); 위의 한줄로, 해당 정.. 더보기
[NODEJS] http 접속 https 로 Redirect 처리 HTTPS 프로토콜 권장에 따라, HTTPS 사용은 이제 선택이 아닌 필수인 경우가 많습니다. 따라서 HTTP 접속을 HTTPS 로 리다이렉트 처리해줄 필요가 있습니다. Apach 나 nginx 와 같은 웹서버에서 http , https 를 제어하지 않고, was 서버에서 제어하는 방법은 아래와 같습니다. app.use(function(req, res, next){ if(!req.secure){ res.redirect("https://"+ 도메인 + req.url); }else{ next(); } }); 원리는 간단합니다. 모든 접속에 대해, secure 접속 여부를 확인하고, 아닌 경우 https 경로로 리다이렉트 시켜주는 방법 입니다. 위의 코드는 미들웨어 생성시 최상단에 작성되어야 합니다. 더보기
[NODEJS] 결제 API 연동하기 - 아임포트 웹 개발시, 결제가 필요할때, PG사 연동등, 결제 처리에 대한 프로세스가 필요한데, 아임포트는 이를 지원해주고, 편리하게 사용할 수 있도록 하는 API 제공 서비스이다. 먼저, 아임포트 공식 사이트이다. ( https://www.iamport.kr/ ) 장점으로는, 다양한 개발 언어를 제공하며, 다양한 PG 사를 지원해준다는 점. 그리고, 글 작성일자 기준으로, 1개의 PG사 연동은 평생 무료 제공한다는 점이 메리트 있다. 아임포트 홍보글이 아니므로, 여기까지만 적어보도록 하고, 바로 연동을 해보도록 하자. 먼저, 기본 사용방법 , 환경설정의 경우 아임포트 홈페이지에 잘 알려주고 있으며, 기술지원 속도도 빠른편으로 보인다. 필요시에는 전문 아임포트 개발자들에게 문의하는게 좋은 방법. 1. REST AP.. 더보기
[nodejs] Linux (Centos6.x ) 에 최신버전 Nodejs 설치하기 Centos 6 에서 Nodejs 를 yum 을 이용해서 설치하게 되면, 아~주 예전버전의 Nodejs 를 설치하게 되는데, 이번 포스팅에서는 Yum 저장소에 최신 버전을 설정하여, 다운받고 설치하는 방법에 대해 포스팅하겠습니다. 1. nodejs , npm 설치 상태 확인 2. Yum 저장소에 nodejs 버전 추가 yum install -y gcc-c ++ make curl -sL https://rpm.nodesource.com/setup_12.x | sudo -E bash - 3. yum install nodejs -y 4. 설치완료 설치가 완료되었음을 확인할 수 있습니다. 더보기
[NODEJS] fs 파일시스템 모듈 [NODEJS] fs 파일시스템 모듈 NodeJS 를 이용하여 개발을 할 때, 생각보다(?) 자주, 잊을만 하면 사용하게 되는 파일시스템 (fs) 모듈입니다.그래서 이참에 자주 쓰는 함수를 정리해볼까합니다.( 공식 모듈 설명 URL : https://nodejs.org/api/fs.html ) fs (파일시스템) 모듈' fs 모듈은 표준 POSIX 기능을 근사하게 모델링 한 방식으로 파일 시스템과 상호 작용하기 위한 API 를 제공 ' 하기 위한 목적을 가진 모듈 0. 시작하기 무슨 모듈이든 사용하려면, 설치를 하고, 모듈을 선언을 해주어야겠지요. fs 모듈은 기본 제공되는 모듈이므로 설치는 필요하지 않습니다.fs 모듈을 선언해주고 시작합니다. var fs = require('fs'); 모든 파일 시스템.. 더보기
[nodejs] nodeclise - 포맷터를 이용한 ejs 파일 html 스타일 적용하기 [nodejs] nodeclise - 포맷터를 이용한 ejs 파일 html 스타일 적용하기 * 만약 nodeclipse 를 사용하고 싶으시다면 아래의 포스팅을 참조해주세요 노드 + 이클립스 > nodeclipse 를 연동하기 포스팅 > https://binshuuuu.tistory.com/8?category=608402 1. 개요 nodeclipse 라는 좋은 툴을 입혔지만, JAVASCRIPT 나 HTML 파일이 아닌 .ejs 파일의 경우에는 포맷터에 정의가 되어있지 않기 때문에 사용하는데에 불편함을 겪을 수 있다. 자동완성이나, 문맥맞춤 등을 사용하지 못하는 마치 '메모장' 같은 파일에서 작업해야한다는 이야기이다. 너무 불편한 상황아닌가 그렇다면 이클립스 포맷터에 ejs 파일을 등록하여 html의 포.. 더보기
[nodejs] JDBC 모듈 : <node-jdbc> [nodejs] JDBC 모듈 : 자바스크립트 언어를 사용하는 nodejs에서는 NPM 에서 다양한 모듈을 제공(오픈라이브러리)받을 수 있습니다.대표적인 라이브러리들은 이미 만들어져 제공되어있기때문에, nodejs는 다양한 레퍼런스를 제공받을 수있기 때문에 많은 방면으로 개발이 용이합니다. 그 중에서 오늘 JDBC 모듈에 대한 포스팅을 해보겠습니다.우선, JDBC (Java Database Connectivity) 란 '자바에서 DB에 접속하기 위한 자바 API' 라고 할 수 있겠습니다.그리고 JDBC 에서는 데이터베이스에서 SELECT , UPDATE, DELETE 등의 쿼리를 처리하는 역활을 합니다. 그리고, 우리가 사용할 데이터베이스 제공 사이트로부터 JDBC 드라이버를 제공.. 더보기