강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

ts님의 프로필 이미지
ts

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

강의중 궁금한게 있습니다.!!

작성

·

838

0

++ 혹시 ... 

서버 실행 중

Executing (default): SELECT 1+1 AS result

db 연결 성공

------------------------------------------------------------------------------------------------

초기 테이블 생성 중 create 관련 메시지가 안뜨고... Executing (default): SELECT 1+1 AS result 저 메시지가 뜨는데 이유가 뭘까요 ㅠㅠ. 초기 테이블 작성하고 첫 시도 입니다.

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

저게 연결 후 sql 잘 돌아가는지 테스트해보는 건데요. 테이블은 제대로 연결 안 된 것 같습니다.

ts님의 프로필 이미지
ts
질문자

const Sequelize = require('sequelize');
const comment = require('./comment');
const hashtag = require('./hashtag');
const image = require('./image');
const post = require('./post');
const user = require('./user');
//import {Sequelize} from "sequelize";
//const Sequelize = require(sequelize);
const env = process.env.NODE_ENV || 'development'; //배포할떈 production으로 바꿈 환결설정 부분
const config = require('../config/config')[env]; //에서 evn하면 development 를 가르킨다. -
const db = {};

const sequelize = new Sequelize(config.database, config.username, config.password, config)
//시퀄라이즈가 node mysql을 연결해준다. cli는 내부적으로 mysql2를 사용하고있다 내부적으로 연결해준다.

db.Comment = comment;
db.Hashtag = hashtag;
db.Image = image;
db.Post = post;
db.User = user;


// 반복문 돌면서 associate 관계들을 연결해줌 - 한 번더 볼 필요 있음
Object.keys(db).forEach(modelName => {
if (db[modelName].associate) {
db[modelName].associate(db);
}
});
db.sequelize = sequelize;
db.Sequelize = Sequelize;

module.exports = db;

const db = require('./models');

const app = express();
//
db.sequelize.sync()
.then(() => {
console.log('db 연결 성공 ')
})
.catch(console.log.error);


테이블 연결 왜 안되는지 잘 모르겠습니다 .ㅠㅠ 제가 시퀄라이즈를 처음써봐서 ... 이런건 어떤 키워드로 구글링해야할까요...
제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

config.js쪽 하나랑 comment.js 한 번 보여주세요. 둘 중에 문제가 있습니다.

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

아, config.json에 logging: true가 없어서 sql이 안 찍힌 거네요

ts님의 프로필 이미지
ts
질문자

(node:21660) [SEQUELIZE0002] DeprecationWarning: The logging-option should be either a function or false. Default: console.log

(Use `node --trace-deprecation ...` to show where the warning was created)

서버 실행 중

Executing (default): SELECT 1+1 AS result

db 연결 성공

"logging": true
안붙어요 ㅠㅠ ""

 

ts님의 프로필 이미지
ts
질문자

거진 4시간동안 삽푸고있는데... 원인을 모르겠습니다.... 

npm i sequelize sequelize-cli 한후 초기화도 해주고 npx sequelize init

따로 npm i mysql2 도 인스톨 받아주고

각 테이블 스크립트에 데이터타입도 mariadb기준으로 typecsript랑 연동되어 있고...

강의대로 친거같은데 잘안되네요...  npx sequelize db:'제 테이블명'이것도 해줬고

저는 mysql 벤치? 는 안쓰지만 제가 쓰는 툴에  db 생성된건 확인됐는데.. 그안에 테이블들이 안붙고...

------------------

서버 실행 중

Executing (default): SELECT 1+1 AS result

db 연결 성공  

------------------  << 이렇게만 뜨네요 ㅠㅠ..

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

지금보니 init을 안 하셨네요. 강좌에서 제가 index.js랑 모델들 소스코드 바꿔야한다고 말씀드렸을텐데요. 강좌 따라하시면 됩니다. 모델들은 class꼴로 바꾸고요.

ts님의 프로필 이미지
ts
질문자

github에 있는 class init 형태로 바꿔보겠습니다. 근데 강좌에서는 init형태로 안되어있었던거 같아서요 (시퀄라이즈sync+nodemon) << 이부분 강좌보다가 막힌거거든요 영상에서는 테이블 붙는데 저는 안붙어서 그래서 github가서도 당연히봤는데 거긴 class super 형태로 되어있더라구요 그래서 우선 이렇게 하고 나중에 설명해주면서 구조를 바꿔주시겠구나 했거든요. 아직 뒷 강의들은 보지못한상황인데 class super 형태로 바꾸는과정도 그 뒷내용에 있는건가요? + 그리고 영상에서는 class 형태 전에도 테이블이 붙는데 제가 뭔가 잘못 꼬인건지 아니면 버전같은게 바껴서 지금은 안되는건지 궁금하네요

 

친절하고 빠른 답변 감사합니다.

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

class 형태 이전에는 db.Comment = comment(sequeloze, Sequelize) 이렇게 뒤에 함수 호출해주셔야 힙니다.

ts님의 프로필 이미지
ts
질문자

해결됐습니다. 감사합니다.

ts님의 프로필 이미지
ts

작성한 질문수

질문하기