Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 타자 게임 만들기
- 계산맞추기 게임
- node.js로 로그인하기
- Do it 자바스크립트 + 제이쿼리 입문
- DB Browser
- node.js 설치
- ReactDOM.render is no longer supported in React 18. Use createRoot instead
- 인프런
- Concurrently
- 노드에 리액트 추가하기
- react오류
- props
- Python
- 따라하며 배우는 노드 리액트 기본 강의
- 모던자바스크립트
- 모두의 파이썬
- googleColaboratory
- intellij
- 웹 게임을 만들며 배우는 리액트
- intllij 내 Bean을 찾지 못해서 발생하는 오류
- spring-boot
- Colaboratory 글자 깨짐
- You are importing createRoot from "react-dom" which is not supported. You should instead import it from "react-dom/client"
- 거북이 대포 게임
- 자바스크립트
- react
- vs code 내 node
- 리액트
- JS 개념
- Spring-Framework
Archives
- Today
- Total
프로그래밍 삽질 중
sql 오류 및 sequelize 정리 본문
1) 문제 : WHERE parameter "id" has invalid "undefined" value
-> patch 사용 중 id값이 계속 전달되지 않음
참고한 내용
//수정 전
router.patch("/:deleteId", function (req, res, next) {
const deleteId = req.params.id;
//수정 후
router.patch("/:deleteId", function (req, res, next) {
const deleteId = req.params.deleteId;
//수정 후(다른 버전)
router.patch("/:id", function (req, res, next) {
const deleteId = req.params.id;
2) sql내 모든 값들을 업데이트 하고 싶어함
오류 원인
code: 'ER_TRUNCATED_WRONG_VALUE',
errno: 1292,
sqlState: '22007',
sqlMessage: "Truncated incorrect INTEGER value: 'allStatus'",
sql: 'UPDATE `words` SET `status`=?,`updatedAt`=? WHERE (`deletedAt` IS NULL AND `id` = ?)',
parameters: [ 'C', '2022-09-01 04:24:24', 'allStatus' ]
-> axios로 넘기는 주소를 "/word/allStatus"로 하니 오류 발생
-> allStatus가 문제라기 보단, `id`=? 내 id값 즉 숫자가 들어가지 않아 생긴 오류
-> /status/1로 변경
//오류 코드
router.patch("/allStatus", function (req, res, next) {
try {
// const wordId = req.params.wordId;
Word.update(
{
status: req.body.status,
},
{
where: {
id: {
[Op.gt]: 0,
},
},
}
);
console.log("req.body", req.body);
console.log("req.body.status", req.body.status);
res.send("update done");
// res.redirect("/index");
} catch (err) {
console.error(err);
next(err);
}
})
//변경된 코드
router.patch("/status/1", function (req, res, next) {
try {
// const wordId = req.params.wordId;
Word.update(
{
status: req.body.status,
},
{
where: {
id: {
[Op.gt]: 0,
},
},
}
);
console.log("req.body", req.body);
console.log("req.body.status", req.body.status);
res.send("update done");
// res.redirect("/index");
} catch (err) {
console.error(err);
next(err);
}
SQL문과 sequelize 문 비교
- SELECT
//SQL
select english, korean, type, status from engWord_sns.words
where (status = "A" or status = "C") and type = "easy" order by createdAt DESC;
//sequelize
//model은 Word
Word.findAll({
include: {
model: User,
attributes: ["id"],
},
attributes: ["id", "english", "korean", "status"],
where: {
[Op.or]: [{ status: "A" }, { status: "C" }],
type: "easy",
},
order: [["createdAt", "DESC"]],
});
- CREATE
//SQL
insert into engWord_sns.words
(english, korean, type, status) values ("test", "테스트", "easy", "A");
//sequelize
//model은 Word
Word.create({
// 단어 등록
UserId: req.user.id,
english,
korean,
type,
status: "A",
});
- UPDATE
* 두 번째 update의 경우
'2) sql내 모든 값들을 업데이트 하고 싶어함' 참고
//1개만 수정
//SQL
update engWord_sns.words set english = "water", korean = "물" where id = 12;
//sequelize
//model은 Word
Word.update(
{
//프론트에서 input id="english"에서 값을 전달 받을 경우 req.body.english
//프론트에서 input id="korean"에서 값을 전달 받을 경우 req.body.korean
english: "water",
korean: "물"
},
{
where: { id: 12 }, //word의 id, 프론트에서 전달받을 경우 id는 req.params.id로 지정
}
)
//전체 수정
//SQL
update engWord_sns.words set status = "A" where id >= 0;
//
Word.update(
{
status: "A"
},
{
where: {
id: {
[Op.gt]: 0, //0보다 큰 경우 적용
//이 경우 router.patch("/status/1", function (req, res, next)
//{ try{Word.update(...)}catch{}}로 적용해야 함
},
},
}
);
- COUNT
//개수세기
//SQL
select count(*) from engWord_sns.words where UserId = 1;
//sequelize
//model은 Word
Word.count({
where: {
UserId: 1,
},
});
* 시퀄라이즈 자세한 문법 설명
https://sebhastian.com/sequelize-count/
'과거 프로그래밍 자료들 > 프로젝트' 카테고리의 다른 글
req.user.id = undefined 일 때 조건(로그인/비로그인일 경우) (0) | 2022.09.05 |
---|---|
sequelize 이용한 axios get, post 차이 정리(mysql 항목 검색) (0) | 2022.09.03 |
[영어단어장 version 1.0] react + mysql + 배포 완료 (0) | 2022.08.25 |
[javascript] API로 받아온 정보 내 각각의 버튼에 함수 적용 (0) | 2022.08.11 |
[javascript] input 체크박스(JS에서 만든 경우) 의 체크 항목 개수 구하기 (0) | 2022.08.10 |