inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

우분투 환경에서 sequelize문제입니다.

412

손현준

작성한 질문수 1

0

안녕하세요~ 

우분투 환경에서 api 서버와 db연동을 위해 강의에서 하시던대로 mysql 8버전을 설치후 테이블명이 다 대문자로 생성되어서 

db를 drop시키고 다시 reload all했으나 재생성이 되지 않았습니다. 

npx sequelize db:create로 만들면 테이블명이 무조건 대문자로만 만들어집니다.ㅠㅠ

다시 drop시키고 npx pm2 reload all로 재실행하여도 db가 생성이 되지 않는데 이유가 무엇일까요?..

db가 있으면 그냥 넘어가고 없으면 생성하는 걸로 알고있었는데 맞나요?

const express = require("express");
const cors = require("cors");
const session = require("express-session");
const cookieParser = require("cookie-parser");
const postRouter = require("./routes/post");
const postsRouter = require("./routes/posts");
const userRouter = require("./routes/user");
// models/index.js에서 model이 등록된 sequelize를 가져옴
const db = require("./models/index.js");
const passport = require("passport");
const passportConfig = require("./passport");
const dotenv = require("dotenv");
const morgan = require("morgan");
const path = require("path");
const hpp = require("hpp");
const helmet = require("helmet");

dotenv.config();
const app = express();
//sequelize.sync() =>  Promise기반 함수
db.sequelize
  .sync()
  .then(() => {
    console.log("db 연결 성공!");
  })
  .catch(console.error);

passportConfig();

if (process.env.NODE_ENV === "production") {
  app.use(morgan("combined")); // 자세한 로그( 접속자의 ip도 나옴 )
  app.use(hpp());
  app.use(helmet());
  app.use(
    cors({
      origin: "http://sonteve.kr",
      credentials: true,
    })
  );
} else {
  app.use(morgan("dev")); // 개발모드에서만 로그 찍어줌 (디버깅 편함)
  app.use(
    cors({
      // credentials : true일때는 모든도메인허용불가하므로 정확한 도메인을 적어주어야한다. 또는 origin: true 로 해준다.
      origin: true, // 모든 도메인으로 부터의 요청 허용 (도메인이 다르면 cors에러가남.) 프론트를 3060 백은 3065이기때문
      credentials: true, // 도메인이 다르면 쿠키가 전달이 안되는데 쿠키를 보내려면 credentails를 true로 해줘야함.
      // front에서는 axios요청의 세번째 인자로 { withCredentials: true} 를 넣어줘야 쿠키가 동봉된다.
    })
  );
}

// 프론트에서 body에 보내온 데이터를 해석해준다.
// 라우터에 걸리면 미들웨어가 종료되기때문에 상단에 위치시켜준다.

//  app.use("/", express.static(path.join(__dirname, "uploads")));  => localhost:3065/이미지파일.png (프론트에서 서버쪽 폴더구조 모르게할 수 있다.)
app.use("/", express.static(path.join(__dirname, "uploads"))); // __dirname(back)과 uploads경로를 합쳐준다. 운영체제 마다 경로가 차이나기때문에 path.join을쓴다.
app.use(express.json()); // json으로 넘어오는 데이터를 해석 해서  req.body에 넣어준다. (axio를 통해 받을때)
app.use(express.urlencoded({ extended: true })); // form submit시의 데이터를 해석해서 req.body에 넣어 준다 .  (일반 form데이터를 받을때)
/*쿠키에 랜덤한 문자열 정보를 넘기고 브라우저에서 서버로 요청할때 
쿠키를 담아서 보내면 그 랜덤한 문자열에 해당하는 정보를 찾는다.*/
app.use(cookieParser());
app.use(
  session({
    saveUninitialized: false,
    resave: false,
    secret: process.env.COOKIE_SECRET,
    cookie: {
      httpOnly: true,
      secure: false,
      domain: process.env.NODE_ENV === "production" && ".sonteve.com",
    },
  })
);
app.use(passport.initialize());
app.use(passport.session());

app.get("/", (req, res) => {
  console.log("hellonode");
  res.send("hello express");
});

app.use("/post", postRouter);
app.use("/posts", postsRouter);
app.use("/user", userRouter);

// 에러처리 미들웨어 존재하는부분
/* 
(기본 에러표시를 바꾸고 싶다면 생성해서 사용한다.)
app.use((err,req,res,next) => {})
*/

app.listen(80, () => {
  console.log("3065포트에서 대기중");
});

nodejs express redux react Next.js

답변 2

0

손현준

감사합니다..! 제가 잘못알고있었네요 sync는 테이블만 생성해주는거였군요

0

제로초(조현영)

db를 말씀하시는 건가요? table을 말씀하시는 건가요?

react-nodebird는 db고 그 아래 Users, Posts 등은 테이블입니다.

sequelize.sync는 테이블을 만들어주는 기능으로 db가 존재하지 않으면 작동하지 않습니다.

대문자로 생성되는 걸 원치 않으시면 models에서 설정에 tableName: 'users', 이런 식으로 정확히 소문자로 tableName 옵션을 기입해주시면 됩니다.

넥스트 버젼 질문

0

77

2

로그인시 401 Unauthorized 오류가 뜹니다

0

89

1

무한 스크롤 중 스크롤 튐 현상

0

175

1

특정 페이지 접근을 막고 싶을 때

0

103

2

createGlobalStyle의 위치와 영향범위

0

96

2

인라인 스타일 리렌더링 관련

0

91

2

vsc 에서 npm init 설치시 오류

0

146

2

nextjs 15버전 사용 가능할까요?

0

158

1

화면 새로고침 문의

0

121

1

RTK에서 draft, state 차이가 있나요?

0

153

2

Next 14 사용해도 될까요?

0

452

1

next, node 버전 / 폴더 구조 질문 드립니다.

0

349

1

url 오류 질문있습니다

0

211

1

ssh xxxxx로 우분투에 들어가려니까 port 22: Connection timed out

0

372

1

sudo certbot --nginx 에러

0

1274

2

Minified React error 콘솔에러 (hydrate)

0

469

1

카카오 공유했을 때 이전에 작성했던 글이 나오는 버그

0

247

1

프론트서버 배포 후 EADDRINUSE에러 발생

0

327

1

npm run build 에러

0

518

1

front 서버 npm run build 중에 발생한 에러들

0

381

1

서버 실행하고 브라우저로 들어갔을때 404에러

0

338

2

css 서버사이드 랜더링이 적용되지 않아서 문의 드립니다.

0

287

1

팔로워 3명씩 불러오고 데이터 합쳐주는걸로 바꾸고 서버요청을 무한으로하고있습니다.

0

237

2

해시태그 검색에서 throttle에 관해 질문있습니다.

0

201

1