- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Node.js
- await
- TypeScript
- til
- clipBehavior
- jsonwebtoken
- Nodejs
- mongoose
- flutter
- findByIdAndDelete
- https
- Find
- nginx
- MYSQL
- css
- moment
- wil
- certbot
- atlas
- EC2
- Express
- double quote
- TailwindCSS
- async
- RDS
- sequelize
- AWS
- mongodb
- JavaScript
- single quote
목록Web (54)
기억 휘발 방지소
📌 해시함수란? 해시함수(Hash Function)은 임의의 길이의 데이터를 고정된 길이의 데이터를 매핑하는 함수이다. 출처: 위키백과 해시함수는 단방향 암호화라고도 한다. 단방향 암호화란 A가 해시함수를 거쳐 B가 나왔다고 했을 때 B를 가지고 다시 A를 알아낼 수 없다! (반대의 개념으로 양방향 암호화가 있는데 양방향 암호화는 A를 B로 암호화하고 B를 다시 복호화하여 A를 알아낼 수 있다.) 또한 어떤 입력에 대해서 항상 같은 결과가 나온다. 보통 회원가입을 할 때 비밀번호를 DB에 저장할 때 해시함수를 거친 결과값을 DB에 저장한다. 그렇게 하면 DB를 누군가 해킹했을 때 해시함수를 갖고 비밀번호를 역으로 알아낼 수 없다!! 📌 bcrypt bcrypt는 해시함수 중 하나이다. 자바스크립트 뿐만 ..
📌 Schema를 생성하는 법 문서에 가보면 방법을 친절히 설명해주고 있다. import mongoose from "mongoose"; const videoSchema = new mongoose.Schema({ title: String, // String is shorthand for { type: String } description: String, createdAt: Date, hashtags: [{ type: String }], meta: { views: Number, rating: Number, }, }); title필드의 타입은 문자열 description의 타입도 문자열 createAt의 타입은 날짜 hashtags는 문자열의 배열이다. meta는 객체가 들어간다. views와 rating의 ..
📌 몽고DB 설치 여기에서 운영체제에 맞는걸로 설치하면 된다. 운영체제가 윈도우라면 아래 그림 같은 창이 뜰텐데 계속 Next 눌러서 설치하면 된다. 설치가 다 끝나고 cmd에서 mongod라고 치면 몽고DB가 실행이 된다. 그리고 cmd에 mongo라고 치면 몽고DB에 접속할 수 있다. 만약에 mongod나 mongo가 안먹히면 환경변수에 몽고DB 설치한 경로 등록 📌 mongoose로 DB연결 mongoose 설치 npm i mongoose 그리고 db.js라는 파일을 만들고 mongoose를 import // db.js import mongoose from "mongoose"; mongoose.connect로 연결 // db.js mongoose.connect("DB주소/데이터베이스이름", { us..
📌 POST 요청 보내기 form(method="POST", action="/post/edit") input(name="title", placeholder="Title", required) input(value="Save", type="submit") pug로 만든 간단한 form이다. 실행하면 아래처럼 나온다. 입력을 하고 Save버튼을 누르면 /post/edit으로 전송한다. (단, form으로 전송할 때에는 input에 반드시 name이 있어야한다) console.log(req.body); // undefined 콘솔로 찍어보면 undefined가 뜬다. 📌 urlencoded app.js에서 라우터 위에 아래코드를 작성해주면 콘솔로 찍었을 때 브라우저에서 입력한 값을 제대로 나온다. extende..
html을 브라우저로 리턴해주는 방법은 2가지 방법이 있다. res.send("")처럼 html코드를 적어서 리턴 res.render("파일이름")으로 html파일자체를 리턴 첫 번째 방법은 html이 간단하면 괜찮은데 길어지면 코드 자체가 너무 길어지고 재사용하기도 힘들다. 그래서 두 번째 방법으로 하는게 낫다. pug라는 템플릿 엔진을 사용해서 html을 작성해보려고한다. 📌 Pug pug는 html의 ''를 없애고 최대한 간결한 키워드를 사용하는 것이 장점이다. 파이썬처럼 들여쓰기를 하여 계층구조를 구분한다. 또한 #{...}으로 변수명이나 JS코드를 입력해서 사용할 수도 있다. doctype html html(lang="en") head title= pageTitle script(type='tex..
Router를 사용하면 요청의 URL을 기반으로 공통되는 라우터들을 그룹화할 수 있다. / /join /login /users/edit /users/remove 📌 라우터 사용하기 라우터는 express.Router([options])로 사용하면 된다. 이렇게 하면 /users/edit이라는 요청을 보냈을 때 /users를 먼저 찾고 userRouter로 간 후 /edit을 찾게된다. userRouter에서는 더 이상 /users를 적지 않아도 된다! import express from "express"; import morgan from "morgan"; const PORT = 4000; const app = express(); const logger = morgan("dev"); app.use(log..