Node.js 8

[Node] npm vs yarn

npm과 yarn은 가장 인기있는 노드 패키지 관리자이다. 두 패키지 관리자를 비교하고 어떤 것을 사용하는 것이 좋은 지 고민하면서 이 글을 작성하게 되었다. 패키지 관리자를 사용하면 프로젝트를 좀 더 쉽게 관리할 수 있다. Package Manager 패키지 관리자는 컴퓨터 프로그램의 설치, 삭제, 업데이트 과정을 자동화하는 소프트웨어 도구를 말한다. 패키지 관리자를 사용하여 많은 프로그램을 스크립트를 통해서 한 번에 관리할 수 있는 장점이 있다. 그 중 npm과 yarn은 자바스크립트 런타임 환경인 노드의 패키지 관리자다. npm npm은 노드 패키지 매니저(Node Package Manager)의 줄임말로 노드를 설치할 때 자동으로 설치되는 기본 패키지 관리자이다. 온라인 플랫폼으로 사람들이 노드 ..

Node.js 2022.08.13

Iframe을 사용하면 안되는 이유

Iframe An inline frame is used to embed another document within the current HTML document. iframe HTML 태그는 웹 사이트 내에서 다른 웹 사이트를 보여줄 때 사용한다. 즉, html 파일을 가져와 보여주는 역할을 한다. 마치 노션의 embed 기능과 같다. 크기 조절 Target for a Link Different Url a 태그는 클릭으로 페이지를 이동할 수 있다. 다만, target 값으로 iframe의 name 값을 입력하면, iframe 내에서 해당 페이지를 확인할 수 있다. Embed embed 태그는 웹 페이지, 사진, 미디어 플레이어, 플러그인과 같은 외부 자원을 컨테이너로 정의한다. ⛔ 대부분의 브라우저는 더..

Node.js 2022.08.10

[Node] OkPacket 로그 지우기

오류 상황 42cabi는 pm2로 서버를 구동하고 있다. pm2 log에 지속적으로 OkPacket 로그가 출력되는 것을 확인했다. 로그인이 완료된 이후, 아래와 같은 로그가 쌓이는 것을 확인하고 이를 지우기위해 고민했다. 오류 원인 OkPacket이 발생하는 원인을 확인했다. OkPacket은 SQL Query 문을 실행한 뒤에 result를 출력하면 나오는 내용이다. Node.js MySQL Result Object - Examples Node.js MySQL Result Object - Examples Node.js MySQL Result Object When a MySQL Query is executed in Node.js, an object called Result Object is return..

Node.js 2022.07.06

[Node] nodemailer로 이메일 전송하기

사물함 대여 서비스를 운영하던 중 장기 대여 연체자가 생긴 문제가 발생했다. 슬랙봇으로 대여 및 반납, 연체 정보를 메세지를 전송하려고 했으나, 승인 지연으로 부득이하게 이메일로 연체 알림을 보내기로 했다. 이에 따라 연체자 명단을 이용하여 메일을 전송하는 코드를 작성했다. Nodemailer :: Nodemailer Nodemailer Nodemailer is a module for Node.js applications to allow easy as cake email sending. The project got started back in 2010 when there was no sane option to send email messages, today it is the solution most No..

Node.js 2022.05.29

[42 OAuth] The redirect uri included is not valid.

The redirect uri included is not valid. 개발환경 backend를 nodeJS와 타입스크립트를 이용하여 작성했다. 42-passport 모듈과 passport 모듈을 사용하여 OAuth 를 실행했다. 배포용 서버에 코드를 작성하여 실행한 경우, 로컬 환경에서는 발생하지 않은 오류가 확인되었다! 오류를 기록하기 위해 작성하는 글이다. 새로 로그인을 하는 경우, 이미 로그인된 상태에서 접속을 시도하는 경우, 두 화면의 오류를 확인했다. 개발환경인 로컬에서는 발생하지 않았던 오류이기에 가장 큰 차이를 갖는 APIs를 다시 확인했다. 가장 큰 차이는 redirect uri 주소. 개발환경에서는 localhost를 사용하므로 http로 redirect 하게 된다. 반면, 배포용 서버..

Node.js 2022.01.13

NodeJS + Typescript 환경 세팅하기

package.json 파일 생성 npm init --y​ tsconfig.json 파일 생성 tsc --init​ 필요한 모듈 설치하기 npm i express dotenv​ dev dependencies npm i --save-dev @types/node @types/express typescript ts-node nodemon​ dotenv, gitignore 파일 생성 touch .env touch .gitignore //gitignore //node_modules //.env​ tsconfig.json 설정 Typescript 컴파일시 세부설정 (tsconfig.json) Typescript 컴파일시 세부설정 (tsconfig.json) - 코딩애플 온라인 강좌 tsconfig 파일 생성하기 여..

Node.js 2021.12.19

CORS 오류 해결방법

CORS 란? Cross Origin Resource Sharing 브라우저가 웹 애플리케이션에 선택된 접근 권한을 부여하는 메커니즘이다. 서로 다른 출처의 리소스를 요청하는 경우, 보안 문제로 이를 차단한다. 해결방법 1. 동일한 출처 사용하기 같은 주소 내에서 데이터를 주고 받는 경우, 오류가 발생하지 않는다. 2. 서버 HTTP 응답 헤더에서 설정을 변경할 수 있다. express 모듈을 사용하는 경우, const express = require("express"); const cors = require("cors"); const app = express(); app.use( cors({ origin: "[주소]", methods: "GET,HEAD,PUT,PATCH,POST,DELETE", cre..

Node.js 2021.12.19

[node.js] express + passport + 42 API 로그인 구현

이 글은 node.js의 express와 passport를 이용하여 42 OAuth 로그인을 구현한 것이다. 1. 42API 등록하기 https://api.intra.42.fr/apidoc 위의 사이트에서 42 API getStarted로 시작한다. 위에 보이는 'here'을 클릭하여 application을 생성한다. Name : 프로젝트 명 Image : 프로젝트 이미지 Website : 프로젝트 도메인 RedirectURI : 로그인 성공 시, 리다이렉트할 주소 API를 등록하면 아래와 같이 UID, SECRET 이 만들어진다. API를 등록했다면, 이제 코드를 작성해보자! 2. 코드 작성하기 1. 서버 생성하기 www 파일 //www #!/usr/bin/env node require("dotenv"..

Node.js 2021.10.29