ESLint는 자바스크립트 문법 중 에러가 있는 곳에 표시를 달아놓는 도구를 의미합니다.ESLint가 뜬 이유는 바로 확장성 때문입니다. 다양한 플러그인을 사용할 수 있기 때문에 새로운 규칙을 추가할 수 있고, 손쉽게 다른 회사나 사람의 설정을 도입할 수 있습니다.
npm install eslint
eslint --init
// 또는
node node_modules\eslint\bin\eslint.js --init
////////////아래 질의문 선택////////////////////
? How would you like to use ESLint?
To check syntax, find problems, and enforce code style
? What type of modules does your project use?
JavaScript modules (import/export)
? Which framework does your project use?
None of these
? Where does your code run? (Press to select, to toggle all, to invert selection)
Browser
? How would you like to define a style for your project?
Use a popular style guide
? Which style guide do you want to follow?
Airbnb (https://github.com/airbnb/javascript)
? What format do you want your config file to be in?
JavaScript
? Would you like to install them now with npm?
Yes
npm install eslint-plugin-prettier
npm install eslint-config-prettier
package.json 에서 dependencies 에
"eslint-plugin-prettier" : "^3.0.0", 이런게 잇을텐데
이걸 devDependencies객체로 넣자 그후 npm install prettier -D
이렇게 명령어를 쳐서 설치하면 된다.
mongoDB에 USER에 관한 왠만한것들을 다 만들어준다. MongoDB 와 MONGOOSE 를 통해 인증을 구현하고자 한다면 이걸 설치하면 된다. 패스워드변경 , 패스워드확인 , 패스워드 생성 , 패스워드 암호화 등 모든것을 만들어준다.
npm install passport-local-mongoose
▼mongoose model
Momgoose 의 model 인 user.js
import mongoose from "mongoose";
const UserSchema = new mongoose.Schema({
name : String,
email: String,
avatarUrl : String,
facebookId : Number,
githubId : Number
})
const model = mongoose.Model("User",UserSchema);
export default model;
passport.js
import passport from "passport";
import User from "./models/User";
passport.use(User.createStrategy());
//strategy 라는건 로그인 방식
passport.serializeUser(User.serializeUser()); //쿠키에 user.id 를 담는다
//serialization 어떤 정보를 쿠키에게 주느냐를 의미 (어떤 field가 쿠키에 포함될것인지)
passport.deserializeUser(User.deserializeUser()); //그 id로 사용자를 식별한다
//deserialization 어느사용자인지 어떻게 찾는가? 쿠키에 저장되어있는 userid로 어떻게 사용자를찾느냐를 의미
import{uploadVideo}from"../middlewares";import{ postupload }from"Controller";
videoRouter.post("/upload",uploadVideo,postupload);//파일이 업로드될 기본 경로
middlewares.js
const multerVideo =multer({ dest :"uploads/videos/"});//업로드될 파일의 기본경로exportconst uploadVideo = multerVideo.single('videoFile');//single 는 오직 하나의 파일만 upload 할수 있는걸 의미// single 안에있는 이름은 html에서 video태그의 name 이다//multer 가 알아서 dest의 경로에 업로드를 해준다
HTML 에서 인코딩타입을 꼭 multipart/form-data 로 맞춰줘야한다. 그리고 FORM 을 보내면 ROUTER에서 받아서 middlewares.js의 함수를 실행후 controller.js의 함수 를 실행한다. 파일 업로드는 middlewares에서 끝나는거라 사실상 컨트롤러함수에서는 리다이렉트말곤 하는게 없다.