node.js | 인스타그램: 게시글 CRUD
·
TIL
Create 1. 알맞은 API 호출 URL을 설정하여서 클라이언트와(httpie/postman) 통신을 성공해주세요. -> '/postings': 포스팅 관련임을 알아볼수 있다 2. 알맞은 http 메소드를 선정하여서 게시글 내용 및 유저의 id 값을 백엔드 서버에 전달해주세요. -> post: body에 데이터를 담아 보낼때, 뭔가 생성할때 3. 데이터가 생성됬을 때에 알맞는 http 상태코드를 반환해주세요. -> 201: 무언가가 잘 생성됐을때 상태코드 5. http response로 반환하는 JSON 데이터의 형태는 다음과 같습니다. { "message" : "postCreated" } req.body에는 어느 유저가 쓰는 글인지를 알기 위해 user의 id가 필수로 들어가고 내용은 없어도됨. 유..
node.js | 인스타그램: 서버-db연결, 회원가입
·
TIL
비밀번호 암호화가 없는 회원가입 프로젝트 생성 mkdir westagram-node cd westagram-node npm init -y 초기설정 Express 설치 / 적용 nodemon 설치 / 적용 cors 설치 / 적용 dotenv 설치 / 환경 변수 적용 morgan 설치 / 적용 npm install express ... morgan은 http요청과 에러를 기록해주는 미들웨어라고 한다. 아직 사용법을 모르겠으니 일단 설치만 했다. 모든 cors 요청 허용하는법 const express = require('express'); const cors = require('cors'); const app = express(); app.use(cors()); typeorm-db연결 npm install m..
파이썬 | functools.wraps
·
Python
1차프로젝트때 로그인 데코레이터에 붙어있던 @wraps # core/utils.py def accessCkeck(func): def wrapper(self, request, *args, **kwargs): ... return func(self, request, *args, **kwargs) return wrapper # carts/views.py ... class CartView(View): @accessCkeck def post(self, request): """carts에 post요청이 오면 카트생성""" # docstring추가 ... 나도 2차때 써봤는데 정확히 무슨 역할을 하는건지 알아보지 않고 참고링크 글에서 다른 개발자와 협업할때 데코레이터를 만들거라면 사용하는게 좋다!는 말만 보고 사용했었..
node.js | express, TypeORM 적용한 CRUD API만들기 - 2 API작성
·
TIL
db연결, 서버만들기 초기설정 // app.js require('dotenv').config(); // db와 연결해서 typeorm사용하기위해 환경변수를 불러온다 const http = require('http'); const express = require('express'); const { DataSource } = require('typeorm'); const myDataSource = new DataSource({ // DataSource객체를 이용해서 typeorm과 db연결준비 type: process.env.TYPEORM_CONNECTION, host: process.env.TYPEORM_HOST, port: process.env.TYPEORM_PORT, username: process.e..
node.js | express, TypeORM 적용한 CRUD API만들기 - 1 db(dbmate)
·
TIL
지금까지 배운걸 종합해서 간단한 CRUD구현해보기 👉 데이터베이스 테이블 생성 데이터베이스 생성 mysql> create database typeorm_prac character set utf8mb4 collate utf8mb4_general_ci; dbmate db 변경 이력을 남겨서 관리하기 위한 파일을 migration파일이라고 하는데 이 migration파일들을 관리하는 프로그램중 하나이다. 설치 npm install dbmate 📌 npm으로 프로젝트 내부에 설치된 프로그램 실행하는법 npm으로 dbmate를 설치하면 그냥 터미널에서는 dbmate명령어를 사용할 수 없다. 이때 npx 명령어를 사용하면 된다(poetry run과 같은 동작을 하는 명령어) 프로젝트 내부에서 프로그램을 돌린다. n..
구방문방구 | 리팩토링: 상품리스트 모듈화
·
wecode
프로젝트 코드를 쳐다보고있는데 메인페이지와 카테고리별 상품 페이지의 리스트 만드는 코드가 완전히 똑같은걸 발견했다. 당연함. 메인페이지의 상품 리스트는 전체상품에서 필터링(신상품, 친환경, 베스트)된 리스트를 보여주는 것이기 때문... ✏️ 메인페이지 뷰(수정전) class MainPageView(View): def get(self, request): def get_list(products): product_list = [{ 'id' : product.id, 'name' : product.name, 'price' : product.price, 'is_green': product.is_green, 'is_best' : product.is_best, 'images' : [{ 'id' : image.id, '..
node.js | TypeORM 적용하기
·
TIL
TypeORM의 풀링(데이터베이스 연결기능)과 raw query이용하기, 데이터베이스는 mysql사용 🥕 TypeORM설치 npm install mysql2 # typeorm-mysql 연동을 도와주는 드라이버 npm install typeorm typeorm을 먼저 설치하면 ER_NOT_SUPPORTED_AUTH_MODE에러가 날 수 있다. mysql2먼저 설치하기! 🥕 dotenv 설정 데이터베이스 관련 환경변수를 관리하기 위해 dotenv를 사용한다. dotenv 설치 npm install dotenv #dotenv 설치 프로젝트 루트경로에 .env파일 생성후 환경변수 저장 // .env파일 TYPEORM_CONNECTION = mysql TYPEORM_HOST = 127.0.0.1 TYPEORM_..
npm install 패키지명 "--save"를 꼭 해야할까
·
기타
강의 영상을 보는데 어디서는 npm install만 하고 어디서는 --save를 해야된다고 해서 찾아봤다. 🍎 패키지 이름 뒤에 --save를 붙였던 이유: npm install 패키지이름 --save npm 5.0.0버전 이전에는 --save를 붙여야 package.json파일 dependencies에 설치한 패키지가 추가됐다. // package.json { ... "dependencies": { "express": "^4.18.1" } } 🍎 하지만 npm 5.0.0 버전 이후로는 npm install과 npm install --save가 차이 없다고 한다. --save를 붙이지 않아도 기본적으로 package.json 파일 dependencies에 추가된다. npm 버전 확인하기 npm -V >>..
반응형