반응형

node 16

[Mongodb] 몽고디비 설정하기 및 기본 CRUD

설치 명령어brew tap mongodb/brewbrew install mongodb-community@7.0brew services start mongodb-community@7.0 기본설정import mongoose from 'mongoose';const { PORT, MONGO_URI } = process.env;mongoose .connect(MONGO_URI) .then(() => { console.log('Connected to MongoDB'); }) .catch((e) => { console.error(e); });// MONGO_URI 가 mongodb://localhost:27017/[테이블이름]  스키마 설정import mongoose from 'mongoose';..

코딩/Node.js 2024.12.09

[koa] Import / export syntax 적용하기

원래는 import, export를 무조건 esm 이라는 라이브러리를 이용해야했지만, 해당 문법이 이미 최신 node에서 사용이 가능하다. 즉 수정할 곳은 두곳인데, 한개도 생략이 가능하다. // package.json 파일 추가"type": "module" 아래가 생략이 가능한 부분.// .eslintrc.json { "env": { "node": true, "es2021": true }, "extends": ["eslint:recommended", "prettier"], "globals": { "Atomics": "readonly", "SharedArrayBuffer": "readonly" }, "parserOptions": { "ecmaVersion": 2020..

코딩/Node.js 2024.12.09

[koa] koa 학습하기 - 2 - 컨트롤러 적용

yarn add koa-bodyparser // index.js// 내용 수정한다const Koa = require('koa');const Router = require('koa-router');const bodyParser = require('koa-bodpareser');const api = require('./api');const app = new Koa();const router = new Router();router.use('/api', api.routes());// 라우터 적용전에 적용app.use(bodyParser());// app 인스턴스에 라우터 적용app.use(router.routes()).use(router.allowedMethods());app.listen(4000, () => ..

코딩/Node.js 2024.12.08

[koa] 코아 프레임워크 학습 - 1 - 라우팅 기능적용

express 개발자들이 express의 단점을 고치고자 했으나 내부구조가 변경되어야 하므로React처럼 view 즉, 미들웨어 부분만 따로 빼서 만든 프레임워크입니다.express처럼 여러 기능이 내장되어 있는 게 아니라서 추가로 설치해야합니다. express를 사용할 줄 아나 원활히 사용한다고 생각되지 않아, 해당 코드를 학습합니다. index파일 하나에 넣고 코드를 적용할 수 없어, 해당 코드를 분할합니다. yarn add koa koa-routeryarn add koa koa-router/// index.jsconst Koa = require('koa');const Router = require('koa-router');const api = require('./api');const app = ne..

코딩/Node.js 2024.12.08

[Git] 추적파일 목록 갱신하기, 추적내용 초기화

간혹 추적하는 파일을 갱신해야할때가 있다. 바로 프로젝트 초창기에 진행되는데, 이걸 모르고 있었다.그래서 항상 프로젝트 밀고 진행. 내용은 gitignore를 생성이 늦었을 때, 발생하는데npm init, yarn init 등 해당 파일을 추적시 같이 node_modules가 추적 되는 경우가 있다. .gitignore를 최신화한다.shell 명령어를 친다.git rm -r --cached .git add .git commit -m "Refresh .gitignore tracking"적용 내용을 확인한다.

코딩/Git 2024.12.07

[NODE] JWT 기능 구현.

기존에 일했던 곳은 세션으로 로그인을 구현했는데, 이력서에 하도 포폴 내 사용가능이라길래 JWT라고 하도 사람들이 그러길래 기능 구현을 해보았다.JWT 내 만료시간, 서명, 내용이 들어간다. 그런데, 이거 완전 stateless라고해서 찾아보니 어허~딱히 그러지도 않네...기존에 서버의 경우 uuid를 통해 session을 만들어왔다.그런데, 이건 뭐;;;로그아웃 기능을 구현해보니, 탈취점이 확실히 보인다.서버에서 cookie로 리프레쉬토큰만 저장해두는데, 로그아웃시 리프레쉬 토큰을 삭제한다.리프레쉬는 서버에 저장하고 상대적으로 유효시간이 짧은 accesstoken을 저장하지 않게 구현했다.로그인시 accessToken 내 만료시간 확인해서 로그인 시키는 구조인데, 이게 탈취되면 막을 방법이 없는 것. ..

코딩/Node.js 2024.11.01

[nest] 동일한 포트에서 사용 시 library @nest/common가 뻗는 오류 발생...

nest g resource Users 명령어를 사용하여 CRUD 기능을 학습 중인데, 카페에서 공부하다 보니까 웹서버 3000포트를 내가 잡았다가 오류 잡느라 다시 껐다가 켰는데, 그 사이에 누가 잡아채갔다. 그러다보니 갑자기 작동이 안되는 오류가 발생하였는데, 로그에서 mapping이 되어야 하는데 먹통이 되고, @nest/common쪽에서 import 오류가 발생하길래 무엇이 잘못인고 했었다. 생각해보니 바로 옆에서 aws공부하는 사람들이 아마도 포트를 가져가는 바람에 발생한 것 같아 아예 안 쓰는 이상한 6400번대 포트를 사용하기로 하여, 해당 포트로 기능을 진행했다. 바로 작동... node쪽에서 해당 문제가 발생하면 금방 잡을텐데, nest는 나도 처음이라 해당 문제 해결이 좀 어려웠다.

코딩/Nest.js 2023.01.08

[Node.js] text파일 읽어와서 excel파일로 저장하기.

text를 이전에 만들어놨는데, 파일 안 형식은 json파일과 동일하다. [ {'이름': "홍길동", '나이':'70'}, {'이름': "홍길동2", '나이':'72'}, {'이름': "홍길동3", '나이':'70'}] 대충 위와 같이 이렇게 구성되어 있는데, 이를 읽어오기 위해서 fs모듈을 사용하고, xlsx를 사용하였다. sheetjs보다 좋은게 너비 설정이 가능해서 참 좋네~(sheetjs는 이건 유료 기능) // array 데이터 이용 const xlsx = require('xlsx'); const path = require('path'); const fs = require('fs'); let file = './해당 text.txt'; let textString; fs.readFile(file, ..

[MYSQL] connection error : Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

원인은 간단하다. mysql 자체에서 plugin이 있는데, 해당 부분이 caching_sha2_password로 저장되어 있기에 그렇다. cmd로 mysql에 접속 후 하단의 문구를 치면 SELECT Host,User,plugin,authentication_string FROM mysql.user; 테이블이 나온다. mysql 자체에서 plugin이 있는데, 해당 부분을 caching_sha2_password에서 mysql_native_password로 바꿔야 하는데, 바꾸는 문장은 이렇다. ALTER USER 'yourusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'youpassword'; ALTER USER 'apple'@'local..

코딩/SQL 2022.02.12
728x90