로그인 기능 만들기 우선 로그인을 하려면 요청된 이메일이 데이터베이스에 있는지 찾아야 한다. 그다음 요청된 비밀번호와 같은지 여부를 판단한다. 만약 둘 다 일치한다면 Token을 생성하면 된다. 이메일 확인하기 우선 엔드포인트는 './login'으로 하고 post 메서드를 하나 추가한다. 그 후 몽고DB 메서드인 findOne 메서드를 사용하여 일치하는 email을 찾는다. 만약 존재하지 않는다면 실패 메시지를 전달한다. 일치하는 email이 있다면 비밀번호를 비교한다. app.post('/login', (req, res) => { //요청된 이메일을 DB에서 찾는다 User.findOne({ email: req.body.email }, (err, user)=> { if(!user){ return res..
서버
비밀번호 암호화 POST로 데이터를 등록한 것을 보면 암호화가 되어있지 않아 자칫하면 위험해질 수 있다. 따라서 비밀번호를 암호화하여 관리해야 한다. 기본적인 구조는 salt를 생성하여 hash를 적용하는 것이다. hash를 적용하여 read를 할때 평문을 알아낼 수 없게 만들면 된다. 다음 코드를 보며 알아보자. userSchema.pre('save', function(next){ var user = this; if(user.isModified('password')){ //비밀번호 암호화 시킨다. bcrypt.genSalt(saltRounds, function(err, salt) { bcrypt.hash(user.password, salt, function(err, hash) { if(err) retu..
비밀 정보 보호 mongoDB와 연결을 할 때 ID와 PASSWORD를 소스 안에 적어 연결을 했다. 이를 배포하거나 github에 올린다면 내 서버를 누구나 쓸 수 있게 된다. 그러니 이를 보호해야 한다. config라는 폴더를 만들어서 제약사항을 관리하자. config 폴더안데dev.js라는 파일을 만들어 mongoDB와 연결하는 URL을 관리할 것이다. 만약 배포되지 않은 상태에서 개발할 때 즉, 로컬에서 개발할 때는 이렇게 만들어 놓은 소스를 사용할 수 있지만 클라우드 환경이나 배포된 상태에서는 사용이 불가능할 수 있다. 따라서 클라우드 같은 환경에서는 따로 설정을 해줘야 한다. 환경별로 파일을 구분하여 생성한 뒤, 환경에 따라 exports 되는 모듈을 달리하게 하자. if(process.env..
Nodemon 소스를 변경하면 서버를 재부팅을 해야 한다. 서버를 껐다가 켜는 작업을 해야 하기 때문에 매우 귀찮고 번거로워진다. Nodemon은 이런 작업을 자동으로 해주는 tool이다. 소스를 변경하면 자동으로 서버에 적용이 된다. Nodemon 설치 npm install nodemon --save-dev -dev는 local에서만 사용하겠다는 명령어이다. dependencies와 devDependencies가 구분이 되어 있는 것을 볼 수 있다. 또한, nodemon으로 실행할 수 있게 script를 하나 만들어 준다. "dev"라는 이름으로 nodemon으로 실행을 할 수 있게 한다.
Body-parser req.body의 접근을 하면 undefined 에러를 마주치게 된다. 그 이유는 눈으로 보기에는 알아볼 수 있는 언어라고 생각하지만 사실 해석이 불가능하다고 판단되기 때문이다. 따라서 이를 인코딩 혹은 가공하는 작업이 필요한다. 이를 해주는 미들웨어가 body-parser이다. 설치법은 간다하다. 터미널에 다음 명령어를 입력하자. pip install body-parser --save Postman server에서 가공하거나 처리한 데이터를 다시 클라이언트에 보내줄 수 없기 때문에 테스트 용으로 사용하는 프로그램이다. 설치는 다음 링크에서 무료로 가능하다. https://www.postman.com/ Postman | The Collaboration Platform for API ..
Model&Schema Schema는 데이터의 구조나 타입, 길이 등의 정보를 담고 있는 것이다. Model은 Schema를 감싸고 있는 것이라 생각하면 된다. models라는 폴더를 생성해 model을 관리해보자. 그 후, models폴더 안에 User.js파일을 만들어 보자. const mongoose = require('mongoose') const userSchema = mongoose.Schema({ name: { type: String, maxlength: 50 }, email:{ type: String, trim: true, unique: 1 }, password:{ type: String, minlength: 5 }, lastname:{ type: String, maxlength: 50 }..
MongoDB 연결하기 https://www.mongodb.com/cloud/atlas/lp/try2?utm_source=google&utm_campaign=gs_apac_south_korea_search_brand_atlas_desktop&utm_term=mongodb&utm_medium=cpc_paid_search&utm_ad=e&utm_ad_campaign_id=1718986522&gclid=CjwKCAiA8ov_BRAoEiwAOZogwRJOWJo-GuKttO0DxA5P0m9m3E-wXqcPuVXeRGbLlk41JZeTp1llRBoCoIEQAvD_BwE MongoDB Atlas: Cloud Document Database Cloud-hosted MongoDB service on AWS, Azure,..
Node.js란? node.js는 쉽게 말해 JavaScript를 서버단에서 사용할 수 있는 언어라고 생각하면 된다. 즉, 서버를 구축하는데 사용되는 언어이다. express.js node.js가 자동차의 엔진이면 express.js는 엔진을 가지고 자동차를 만드는 것이다. node를 이용하여 서버를 구축할 때 사용되는 것이다. 환경설정 node.js 설치를 해야 한다. https://nodejs.org/ko/ Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 여기서 설치를 하면 된다. 설치가 완료되면 cmd나 git-bash를 켜서 확인을 한다. node -v라는 명령어로 확인할 수 있다...