당신이 늘 명중한다면, 표적이 너무 가까이에 있거나 너무 크기 때문이다.
- 톰 허쉬필드 -
- 요 근래 최악의 날이다. 노력해서 오류를 고치고 MySQL에 데이터를 삽입하려 했으나 실패했다. 하던 대로 mongodb에 추가하든지 강의보고 users 추가한 것처럼 따라 하든지 해야 한다. 돌아다니는 동영상 몇 개 보고 글도 봤는데 그것만으로는 해결하기 어렵다. 예전에 Insomnia 썼던 방식으로 똑같이 추가하면 될 것 같은데 기억이 잘 안 난다.
어제 API 만드는 게 익숙해진다는 것은 다 착각인가 보다. 2강도 제대로 마무리 못하고 해설을 보면서 하고, 3강조차도 마무리하지 못했다. 4강으로 넘어갔는데 3강에서 goods가 추가되지 않는다면 4강으로 넘어갈 수 없는 구조라 막막하다. 열심히 보다 효율적으로 시간을 보내고 싶다. - docker 사용해보고, 간단한 명령어를 통해 MySQL도 실행해봤다. 터미널을 종료할 경우 MySQL이 같이 꺼진다고 했는데 중간에 무시하고 껐다가 오류 뜨고 다시 돌아가면서 해결하다 보니 3시간은 흘렀다. 문제가 생겼을 땐 프로젝트를 다시 시작하는 게 가장 빠른 것 같다. 그러기 위해선 중간중간 잘 백업해두는 습관이 필요해 보인다.
터미널에 MySQL 실행 명령어 입력
docker run --rm -p 3306:3306 --name test-db -e MYSQL_ROOT_PASSWORD=1234 mysql:5.7 mysqld --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
port: 3306 MySQL Community Swerver (GPL)뜨면 다음으로 넘어간다.
MySQL 서버 끄면 데이터가 날아감
다시 켜서 데이터베이스를 먼저 생성해야 함
npm i sequelize mysql2 -S
npm i sequelize-cli -D
npx sequelize init
이후
npx sequlize db:create
npx sequlize db:migrate
요 두 개를 실행해서 index.js와 migrations를 생성해준다.
유저 모델 생성 명령어 : 모델 만들기 아래 명령어를 치면 goods라는 모델과 migrations 내부에 숫자로 형성되는 js파일이 생긴다.
npx sequelize model:generate --name goods --attributes name:string,thumbnailUrl:string,category:string,price:decimal
Mongodb에서 Mysql로 바꿀 시 바뀌는 것들
const User = require("./models/user");
const { User } = require("./models/index");
user와 직접 연결하는 것이 아닌 index를 통해 연결된다. (직접 연결 시 복잡한 과정을 거쳐야 함)
const existUsers = await User.find
const existUsers = await User.findAll
find를 제공하지 않기에 findAll사용, 사용 시 where 조건이 있다.
const existUsers = await User.find({
$or: [{ email }, { nickname }],
});
if (existUsers.length) {
res.status(400).send({
errorMessage: "이미 가입된 이메일 또는 닉네임이 있습니다.",
});
return;
}
const user = new User({ email, nickname, password });
await user.save();
res.status(201).send({});
} catch (err) {
console.log(err)
res.status(400).send({
errorMessage: "요청한 데이터의 형식이 올바르지 않습니다."
})
}
})
'TIL' 카테고리의 다른 글
20210705 [항해 29일 차] (0) | 2021.07.06 |
---|---|
20210704 [항해 28일 차] (0) | 2021.07.04 |
20210702 [항해 26일 차] Node.js 심화반 시작 (0) | 2021.07.03 |
20210701 [항해 25일 차] (0) | 2021.07.02 |
20210630 [항해 24일 차] (0) | 2021.07.01 |