2019. 10. 28. 23:17ㆍTIL
오늘 한일
어제 머리 아프게 했던 mysql 문제는 결국 mysql 을 완전히 제거하고 새로 설치하는 것으로 해결이 되었다.
아무리 계속 검색을 해보아도 권한을 재 설정 해주라는 방법들 또는 실행 중인 프로세스를 종료하라는 방법들 뿐이었고 그 방법들로는 해결이 되지않았다. 그래서 결국 제거후 재 설치를 하였다. 뭔가 좀 찝찝한 해결이 되어 버렸다.
2주 프로젝트때 migration 설정을 하지않아 계속해서 db를 drop 하고 다시 만든 경우가 있어서 이번엔 migration 설정을 해주었다. 하지만db에는 migration 되었을 때 생성되는 table이 만들어 졌는데 파일은 생성이 되지 않았다. 계속 이미 만들어 졌다는 메시지만 돌아왔다.
그래서 seed설정으로 변경 값들이 있을경우 적용을 해주기로 하였다. 아래와 같이 test column을 만들어 준 뒤 적용을 시켜보았다.
module.exports = {
up: (queryInterface, Sequelize) => {
queryInterface.addcolumn('users', test, {
type: Sequelize.SRTING
})
},
down: (queryInterface, Sequelize) => {
queryInterface.addcolumn('users', test)
}
};
첫번째 시도에서는 column이 생성이 되었는데 다시 되돌리기 위해 undo를 해도 column이 삭제가 되지 않았다. 다시 새로운 column을 생성 하도록 설정한 뒤 시도를 해보았지만 실행이 되지 않았다.
왜 실행이 안되는지 정확한 이유를 알지 못했고 시간을 너무 허비해서 우선 보류해 두기로 하였다.
※Sequelize 전역에 설치하지 않았을 경우 실행 방법
node_modules/.bin/sequelize or npx seqeulize
migration 참고 블로그: https://sequelize.readthedocs.io/en/latest/docs/migrations/
seed 참고 블로그 : Sequelize Seed – 시드 데이터 관리하기
회원 가입 할 때 비밀번호를 암호화 시켜주기 위해서 crypto 모듈을 사용하였다. route 함수에 바로 crpyto 모듈을 작성 하였는데 코드가 길어서 보기가 힘들었다. 모듈화를 해주면 좋겠다는 생각이 들어 따로 함수로 만들어 주었다.
function encryption(password){
crpyto.randomBytes(64, (err, buf) => {
crypto.pbkdf2(
password,
buf.toString("base64"),
199543,
64,
"sha512",
(err, key) => {
users
.create({
u_email: req.body.email,
u_name: req.body.name,
u_password: key.toString("base64"),
})
.then(() => {
response.isSignup = true;
res.json(response);
});
}
);
});
}
'TIL' 카테고리의 다른 글
[TIL] 10.30 JWT 사용자 인증 (0) | 2019.10.30 |
---|---|
[TIL] 10.29 crpyto, user table 재설정 (0) | 2019.10.30 |
[TIL] 10.27 mysql server open error (0) | 2019.10.27 |
[TIL]10.25 trello clone project start!! (0) | 2019.10.25 |
[TIL]10.23 (0) | 2019.10.23 |