'Backend' 카테고리의 글 목록
본문 바로가기

Backend

(83)
S3 업로드와 조회(HTTP get) 코드 샘플 S3 넣기 s3에 접근하기 위해서 aws-sdk라는 모듈이 필요하다. 한가지 주의할점은 await를 사용해야 s3에 온전히 넣을때까지 기다릴 수 있다. s3.upload(params)를 호출하면되는데 이때 params에 들어가는 옵션들을 확인해보자. params 옵션 * Bucket : s3에 만든 bucket이름을 넣는다. * Key : 해당 bucket에 넣을 폴더명을 입력한다. 데이터는 이곳 안에 들어간다. * Body : json 형태의 데이터가 들어간다. JSON.stringify() 처리를 해줘야한다. * ACL: ACL은 "Access Control List"의 약자로, AWS S3에서 객체(파일)에 대한 액세스 권한을 제어하기 위한 메커니즘이다. ACL은 S3 객체에 대한 여러 사용자 또는..
람다 코드 샘플(Nodejs, db조회) 람다 rds연동 샘플 코드입니다. 깃허브에 올려둬서 index.js만 수정해서 압축해서 aws에 올리면됩니다. !!주의할점은 압축시 해당 폴더를 압축하는것이 아니라 폴더 내부에서 연관폴더들을 선택후 압축해야 테스트시 오류가 발생하지않습니다. https://github.com/LeeEugene1/lambda-sample/tree/master GitHub - LeeEugene1/lambda-sample: 기본 람다 세팅 cli 압축파일 업로드용 기본 람다 세팅 cli 압축파일 업로드용. Contribute to LeeEugene1/lambda-sample development by creating an account on GitHub. github.com const mysql = require('mysql2..
Node 초간단 업데이트 방법(MAC과 Window) Mac 언제나 새로시작하는 프로젝트 시작은 신난다! Nextjs최신버전으로 프로젝트를 하려고하니까 이런 메시지가 떴다. You are using Node.js 18.12.1. For Next.js, Node.js version >= v18.17.0 is required. 스택오버플로우 검색해보니 노드 다운받고안해도된다고해서 간편하게 업그레이드를했다. ## (force) clear you npm cache sudo npm cache clean -f ##install n (this might take a while) sudo npm install -g n ##upgrade to the current stable version sudo n stable https://stackoverflow.com/questi..
테이블, 프로시져 만들기(Create table, Create Procedure) 예시 -- 테이블만들기 CREATE TABLE tb_user_rank ( id INT AUTO_INCREMENT PRIMARY KEY, creator_id INT, chat_cnt INT, user_cnt INT, slug VARCHAR(255) COMMENT '유저프로필', profile_picture VARCHAR(255), execution_date DATE ); -- 샘플데이터입력 INSERT INTO tb_user_rank (creator_id, chat_cnt, user_cnt, slug, profile_picture, execution_date) VALUES (1, 1, 0, 'user', 'https://example.com', 'https://example.com', '2023-12-01');..
람다 함수 zip 다운받기(콘솔, CLI) Lamda함수 불러오기 aws 콘솔 에서 람다함수내용을 보려고했는데 너무 길어서 안보여준다고떴다. 람다함수의 내용이 너무 길경우는 다운받아보는 방법이있는데 콘솔과 CLI에서 둘다 가능하다. The deployment package of your Lambda function "함수명" is too large to enable inline code editing. However, you can still invoke your function. 콘솔에서 다운받는 방법 콘솔에서는 다운로드 탭을 활용 CLI에서 다운받는 방법 invoke function을하라고하는데 get-funcion 기능을 찾았다. 준비 윈도우라면 관리자모드로 powershell을 연다. 콘솔이아닌 CLI에 접속하기위해 aws IAM을 준비하..
[nodejs] 미들웨어(Middleware) 사용법 노드js에서 미들웨어란 웹 애플리케이션에서 요청과 응답사이에 위치하여 클라이언트의 요청을 처리하고 필요한 작업을 수행하도록 도와준다. 클라이언트로부터 들어오는 HTTP요청과 서버로부터 클라이언트로 보내는 HTTP 응답에 영향을 주는 중간 소프트웨어 구성 요소로 req, res객체 그리고 라우터 함수 사이에 존재한다. 장점 코드의 모듈성과 재사용성을 높이며 코드를 보다 구조적으로 유지하고 유지보수를 용이하게 만들어준다. 사용방법 app.use() 또는 router.use()를 통해 등록하고 next()함수를 호출하여 다음 미들웨어로 제어를 넘길 수 있다. index.js const app = express(); app.use((req, res, next) => { req.country = 'KR' next..
fetch 에러 SyntaxError: Unexpected end of JSON input fetch의 catch에서 자꾸 에러가 잡혔다. 클라이언트 문제라고생각해서 요청헤더를 수정해봤는데 고쳐지지않았다. 찾아보니 서버문제였다. 원인 서버에서 전송된 json데이터가 비어있거나 올바르게 형식화 되어있지 않았을 때 발생한다. API를 확인해보니 성공시 다음과같이 리턴해주고있었다. return res.status(200).json() 성공상태를 나타내는 success를 속성을 추가하여 해결하였다. return res.status(200).json({ success: true });
Nodejs index.js 예시 1. ejs를 사용할경우 index.js const express = require("express"); const cors = require("cors"); const app = express(); app.set("view engine", "ejs"); require("dotenv").config(); const {port} = ensureEnv('PORT') app.use(cors()); // app.use(cookieParser()); app.use(express.static("public")); app.use(express.json({ limit: "50mb" })); app.use(express.json()); app.use(express.urlencoded({ extended: false, l..