기본 패키지 설치 및 세팅
npm install express mongoose dotenv helmet morgan nodemon
express
: Node.js framework. 서버 돌리는 용mongoose
: MongoDB를. Node.js와 MongoDB를 연결해주는 ODMdotenv
: 환경변수 사용할 수 있게 해주는 패키지. 데이터베이스 내용 숨기는 용도로 사용.helmet
: 리퀘스트 헤더 값 관련 패키지. 리퀘스트 보안 위해 사용.morgan
: 로그 관리용nodemon
: 서버 변경된 내용 있음 알아서 restart 되도록. package.json에서 start script를 nodemon index.js로 변경해주면 npm start 할 때 알아서 nodemon으로 실행MONGO_URL = mongodb+srv://<username>:<password>@cluster0.puf8ahh.mongodb.net/social?retryWrites=true&w=majority
dotenv.config();
mongoose.connect(process.env.MONGO_URL);
express.js에 미들웨어 등록
//middleware
app.use(express.json());
app.use(helmet());
app.use(morgan("common"));
.use
로 미들웨어 등록하여 사용rest api로 라우터 설정
Application Programming Interface
Representational State Transfer
CRUD
- POST
, GET
, PUT
, DELETE
register user
- POSTlogin
- POSTasync
: 함수를 Promise로 만들어줌await
: async 함수에서만 쓸 수 있음. 작업이 끝날 때까지 기다려줌brew install --cask postman
브루트 포스 검색 공격
에 대한 저항 유지salt
: 해시 함수에서 비밀번호 암호화할 때 추가되는 바이트 단위의 임의의 문자열update user
- PUTdelete user
- DELETEget a user
- GET//user database 목록 중 password, updateAt을 제외한 나머지가 other 배열로 합쳐짐
const {password, updatedAt, ...other} = user._doc;
follow a user
unfollow a user
$push
operator appends a specified value to an array.$pull
operator removes from an existing array all instances of a value or values that match a specified condition.