본문 바로가기

개발/JavaScript

(45)
Error: /lib64/libstdc++.so.6: version `CXXABI_1.3.8' not found node js express 프로젝트에 패키지를 추가하고 서버에서 git pull 받아서 배포를 하려고 하는데 npm install을 하니 에러가 발생 검색했더니 패키지가 참조해야하는 CXXABI_1.3.8 이 파일이 없어서 그렇다고 한다. 원인은 원래 기존에 사용했던 게 bcrypt 3.0.6인데 이번에 ftp 패키지를 추가하면서 5.1.1로 수정됐다. 그래서 더 높은 버전의 CXXABI_1.3.8이 필요하게 됐다. 일단 bcrypt 버전을 다시 낮춰서 실행을 해봐야겠다. 안된다. 결국 ftp를 사용하려면 이 문제를 해결해야한다. CXXABI는 gcc 라이브러리에 포함되어 있다. 현재 버전을 확인하고 gcc 버전을 올려 1.3.8을 얻어야 한다. 확인해보자 sudo find / -name libstdc..
[JS] Optional chaining Optional Chaining const result = { status: 'OK', data: { id: 1, title: 'title' } } console.log(result.data?.title) // title or undefined console.log(result.data.title?.replace('e', 'a')) // titla or undefined 왼쪽이 null or undefined인 경우는 동작하지 않는다. 값이 존재하는지 체크 후 ?. 뒤의 코드를 실행 nullish coalescing operator console.log(result.data.content ?? '없음') // 없음 왼쪽이 null or undefined인 경우 ?? 뒤의 값을 적용
[JS] addEventListener가 동작을 안한다 글쓰기 기능을 구현하고 글수정 기능을 구현하기 위해 코드를 손봤다. const main = { init : function() { const _this = this; saveBtn.addEventListener("click", (e) => _this.save()); updateBtn.addEventListener("click", (e) => _this.update()); }, save : async function() { // ... }, update : async function() { // ... } } main.init(); updateBtn에 이벤트를 추가했는데 클릭 이벤트가 동작을 하지 않았다. saveBtn은 글쓰기 화면에만 있고 updateBtn은 글수정 화면에만 있다. 콘솔에서는 계속 nu..
[JS] jQuery Ajax를 바닐라 JS fetch()로 바꾸기 - jQuery 코드 var main = { init: function() { var _this = this; $('#btn-save').on('click', function() { _this.save(); }); }, save: function() { var data = { title: $('#title').val(), author: $('#author').val(), content: $('#content').val(), }; $.ajax({ type: 'POST', url: '/api/v1/posts', dataType: 'json', contentType: 'application/json; charset=utf-8', data: JSON.stringify(data) }).done(function()..
[NestJS] logger, Configuration logger log: 중요한 정보의 범용 로깅 warning: 치명적이거나 파괴적이지 않은 문제 error: 치명적이거나 파괴적인 문제 debug: 오류 발생시 로직을 디버그하는데 도움이 되는 정보 - 개발자 용 verbose: 응용 프로그램의 동작에 대한 통찰력을 제공 - 운영자 용 Logger.log('log message'); 설정 Configuration 애플리케이션인 시작할 때 로드 되어 값을 정의 Codebase(XML, JSON, YAML) Port 등 노출 돼도 상관없는 정보 처리 Enviroment Variables 비밀번호, API key 등 노출되면 안되는 정보를 처리 npm i config config 폴더 생성 default.yml - 기본 설정 development.yml - 기..
[NestJS] Unit Testing, End-to-End(E2E) Unit Testing - function 단위로 테스트 - test 실행 스크립트 "test": "jest", "test:watch": "jest --watch", "test:cov": "jest --coverage", "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", "test:e2e": "jest --config ./test/jest-e2e.json" jest - 자바스크립트 테스트 프레임워크 - [테스트할 파일명].spec.ts 파일에 작성 describe: test 표시 beforeEach: 각 테스트를 하기 전 실행 afterAll()..
[NestJS] Modules, DI Module - movies.module 생성 import { Module } from '@nestjs/common'; import { MoviesController } from './movies.controller'; import { MoviesService } from './movies.service'; @Module({ controllers: [MoviesController], providers: [MoviesService], }) export class MoviesModule {} - app.module: 페이지 home 활용 import { Module } from '@nestjs/common'; import { MoviesModule } from './movies/movies.module'; ..
[NestJS] DTO, 유효성 검사 Validation 유효성 검사 - class-validator, class-transformer 패키지 설치 npm i class-validator class-transformer - main.ts에 pipe 작성 async function bootstrap() { const app = await NestFactory.create(AppModule); app.useGlobalPipes(new ValidationPipe()); // 유효성 검사 파이프 await app.listen(3000); } bootstrap(); * pipe - 코드가 지나가는 길 - 미들웨어와 비슷한 역할 ValidationPipe app.useGlobalPipes( new ValidationPipe({ // 유효성 검사 파이프 생성 whiteli..