최근에 이력서와 면접 등의 일로 조금 늦어졌지만, 다시 하던 스터디를 시작해봅니다. Subscriber Model 만들기 먼저 Model을 만들기 위한 기본 구성은 다음과 같다. // server > models > Subscriber.js const mongoose = require("mongoose"); const Schema = mongoose.Schema; const subscriberSchema = mongoose.Schema({}, { timestamps: true }); const Subscriber = mongoose.model("Subscriber", subscriberSchema); module.exports = { Subscriber }; mongoose를 불러와 schema를 생성하..
오늘은 서버에 비디오를 업로드하는 공부를 하려 한다. 1. 비디오 Collection 만들기 먼저 서버에 Video.js 모델 기본 세팅을 해준다. 그런 후 필요한 collection을 설정한다. // server > models > Video.js const mongoose = require('mongoose'); const Schema = mongoose.Schema; const videoShema = mongoose.Schema({ writer: { type: Schema.Types.ObjectId, ref: 'User' }, title : { type: String, maxlength: 50 }, description : { type: String }, privacy: { type: Number ..
오늘은 서버와 클라이언트를 매번 두 번 다 실행을 하기 위해서는 매번 실행을 각각 해야 하는데 그 방법을 한 번에 할 수 있는 방법을 알아보려고 한다. 1. concurrently 설치하기 yarn add concurrently 2. package.json명령어 추가하기 { // 생략 "scripts": { "start": "node index.js", "backend": "nodemon index.js", "test": "echo \"Error: no test specified\" && exit 1", "dev": "concurrently \"npm run start\" \"cd ../client && npm run start\"" }, // 생략 } 여기서 주목해야 하는 부분은 dev다. "dev":..
오늘은 로그아웃 기능을 만들어 보려고 한다. 1. 로그아웃 Router 만들기 // index.js app.get('/api/users/logout', auth, (req, res) => { }) 먼저 로그아웃 router를 만들어주고 auth middleware도 추가해준다. 2. 로그아웃 하려는 유저를 DB에서 찾기 app.get('/api/users/logout', auth, (req, res) => { User.findOneAndUpdate({ _id: req.user._id }, }) }) 여기서 findOneAndUpdate를 사용하여 로그아웃하려는 유저 ID를 찾는다. 3. 찾은 유저의 토큰을 삭제 app.get('/api/users/logout', auth, (req, res) => { U..
오늘은 Auth 기능을 공부하였는데 아직도 이해가 가지 않는 부분도 있지만 따라 해보려 한다. 먼저, 추후에 쓰일 예정이지만 Express라는 라우터를 사용하기 위해 현재 쓰이는 API들의 경로를 디테일하게 나누었다. 이렇게 해야 현재 라우터가 어디에 관련된 라우터인지 알 수 있기 때문이다. users, products, comment 등 다양하게 존재하기 때문이다. index.js 상단에는 auth를 import를 해야 사용할 수 있다. 또한 middleware값에서 Authenticaation이 True일 경우 원하는 유저정보를 제공하여 가져올 수 있다. middleware/auth.js 아직은 이 순서가 이해가 가면서도 이해가 잘 가지 않지만, 원래 어려웠던 것이니 일단 이렇게 하는구나 하고 넘어가..
가장 기본이지만 필자에게는 제일 어려웠던 로그인 기능을 오늘 추가해보려고 한다. 전체적인 개념은 이해했지만 아직도 무언가 부족한 느낌이 들었지만, 오늘도 어느 정도 이해를 바탕으로 글을 쓰려고 한다. 1. 데이터 베이스에서 요청한 E-mail을 찾기 일단 회원가입이 되어있는지의 E-mail을 찾는 코드가 필요하다. Express 라우트 메소드를 사용한다. // POST method route app.post('/', function (req, res) { res.send('POST request to the homepage'); }); mongodb에서 제공하는 method를 이용한다. //index.js ... app.post('/login', (req, res) => { User.findOne({ e..
비밀번호는 아무리 판매자라 하여도 사용자의 비밀번호를 보아서도 알아서도 안된다. 그렇기에 비밀번호를 암호화하는 것이 중요하다. 이번에는 bcrypt 패키지를 이용하여 회원가입 시 암호화를 진행하려 한다. 일단 mongoDB를 확인하면 맨 처음 가입 시 테스트했던 것을 확인하면, 비밀번호가 너무 잘 보인다. 그래서 그 부분을 보완하기 위해서 bcrypt패키지를 설치해야 한다. yarn add bcrypt OR npm install bcrypt moduls/User.js ... const bcrypt = require('bcrypt'); const saltRounds = 10; ... userSchema.pre('save', function(next){ // 회원가입할 정보를 저장하기 전에 함수 실행 let..
저번 시간에는 nodemon을 설치함으로써 서버다운 없이 리프레시를 할 수 있는 모듈을 설치하였다. 또한 package에 대해 개발/배포에 따라 구별을 하는 방법을 알았다. 그래서 이번에는 서버 설정을 하다 보면 깃에 올리지 말아야 할 것이 있다. 보완성을 더욱 높이는 방법에 대해 정리를 해보았다. index.js ... const config = require('./config/key'); ... mongoose.connect(config.mongoURI, { useNewUrlParser: true, useUnifiedTopology: true, useCreateIndex: true, useFindAndModify: false // 미사용시 에러발생 }).then(() => console.log('Mo..
- Total
- Today
- Yesterday
- 자바스크립트
- github
- 자바
- java
- CSS
- node.js
- 파이썬
- 노드
- 함수
- 재공부
- redux
- mongodb
- Coding Test
- array
- 배열
- 프로그래머스
- programmers
- Visual Studio Code
- 뷰
- Git
- node
- 리액트 유튜브
- 리덕스
- Switch
- 코딩테스트
- react
- node-sass
- 리액트
- javascript
- 리액트 썸네일
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |