인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

박상우님의 프로필 이미지
박상우

작성한 질문수

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

프론트 서버 배포하기

Cors error 인데 원인을 모르겠습니다.

작성

·

439

0

또한, db 지우고 다시 create 해도 계속 대문자로 생성이 되는데 다른 부분을 설정하고 create 해야하나요? 강의에는 해당내용이 없네요

점검해본 사항 입니다. 추가로 확인해봐야할 사항이 있을까요??

1. ip 주소 설정

2. build 는 잘 됩니다.

3. ec2 프론트 ip 주소로 접속하면 시작화면은 나오는데 강의처럼 api 요청을하면 cors 에러가 나고있습니다.

4. ubuntu 환경에서 모든 설정 확인 후 재시작

5.  cors 설정

app.use(
cors({
origin: ['http://13.125.207.66', 'http://localhost:3060'],
credentials: true, // 다른 도메인 간에 쿠키 전달할 수 있게
})
);
 

답변 7

0

박상우님의 프로필 이미지
박상우
질문자

레포를 보시는게 빠를 수도 있을 것 같아서 깃헙 주소도 남겨볼게요..!

https://github.com/psw0962/react-bird

 

src/server 

0

박상우님의 프로필 이미지
박상우
질문자

이렇게 나와서 새로고침 후 로그인을 해보니 로그인 시도 1번 하고 다시 새로고침 후 로그인 시도를 하면 로그인이 되네요 ;;

질문하면서도 어디쪽을 염두하고 질문을 드려야할지 막막하네요.. 

0

박상우님의 프로필 이미지
박상우
질문자

정말 이상한 상황이네요... 위와 같은 cors에러가 뜨는데 monit 에서는 

0

박상우님의 프로필 이미지
박상우
질문자

db 설정 쪽 입니다.

 

const Sequelize = require('sequelize');
const env = process.env.NODE_ENV || 'development';
const config = require('../config/config')[env];
const db = {};

const sequelize = new Sequelize(config.database, config.username, config.password, config);

db.Comment = require('./comment')(sequelize, Sequelize);
db.Hashtag = require('./hashtag')(sequelize, Sequelize);
db.Image = require('./image')(sequelize, Sequelize);
db.Post = require('./post')(sequelize, Sequelize);
db.User = require('./user')(sequelize, Sequelize);

Object.keys(db).forEach((modelName) => {
if (db[modelName].associate) {
db[modelName].associate(db);
}
});

db.sequelize = sequelize;
db.Sequelize = Sequelize;

module.exports = db;
제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

이 설정이 아닙니다. 대문자가 되는 테이블 설정을 보여주세요.

박상우님의 프로필 이미지
박상우
질문자

이 부분을 말씀하시는 건가요..?

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

테이블이 대문자가 되는 것이 맞는데 무슨 문제가 있나요?

박상우님의 프로필 이미지
박상우
질문자

강의에서는 대문자로 나오면 안된다고 drop db 하고 다시하니까 소문자로 테이블들이 만들어지는 내용이 있더라구요

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

https://github.com/ZeroCho/react-nodebird/blob/master/ch7/back/models/hashtag.js#L14

이 줄처럼 tableName이 소문자면 소문자로 나와야합니다.

박상우님의 프로필 이미지
박상우
질문자

음.. 알겠습니다 재시작 해보고 처음부터 진행해보고 안되면 차근히 정리 후 다시 질문 드리겠습니다. 바쁘실텐데 빠르게 답변주셔서 감사합니다

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

네 올려주신 소스 보니까 tableName이 없더라고요.

0

박상우님의 프로필 이미지
박상우
질문자

cors 코드는 백엔드 app.js 에서 작성한 내용이구요

위에 보이는 http://13.125.207.66 이 프론트 아이피 입니다

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

이건 CORS 문제 이전에 서버에 에러가 있어서 발생한 문제입니다. 백엔드 서버 에러메시지를 확인하셔야 합니다.

pm2 logs --err --lines 200

박상우님의 프로필 이미지
박상우
질문자

0|app      | Warning: connect.session() MemoryStore is not

0|app      | designed for a production environment, as it will leak

0|app      | memory, and will not scale past a single process.

0|app      | ConnectionError [SequelizeConnectionError]: Unknown database 'react-bird'

0|app      |     at connect (/home/ubuntu/react-bird/src/server/node_modules/sequelize/dist/lib/dialects/mysql/connection-manager.js:1:2170)

0|app      |     at processTicksAndRejections (internal/process/task_queues.js:95:5)

0|app      |     at async c._connect (/home/ubuntu/react-bird/src/server/node_modules/sequelize/dist/lib/dialects/abstract/connection-manager.js:1:4828)

0|app      |     at async /home/ubuntu/react-bird/src/server/node_modules/sequelize/dist/lib/dialects/abstract/connection-manager.js:1:3852

0|app      |     at async c.getConnection (/home/ubuntu/react-bird/src/server/node_modules/sequelize/dist/lib/dialects/abstract/connection-manager.js:1:4492)

0|app      |     at async /home/ubuntu/react-bird/src/server/node_modules/sequelize/dist/lib/sequelize.js:1:6942

0|app      |     at async w.createTable (/home/ubuntu/react-bird/src/server/node_modules/sequelize/dist/lib/dialects/abstract/query-interface.js:1:2235)

0|app      |     at async Function.sync (/home/ubuntu/react-bird/src/server/node_modules/sequelize/dist/lib/model.js:1:21209)

0|app      |     at async r.sync (/home/ubuntu/react-bird/src/server/node_modules/sequelize/dist/lib/sequelize.js:1:8476) {

0|app      |   parent: Error: Unknown database 'react-bird'

0|app      |       at Packet.asError (/home/ubuntu/react-bird/src/server/node_modules/mysql2/lib/packets/packet.js:728:17)

0|app      |       at ClientHandshake.execute (/home/ubuntu/react-bird/src/server/node_modules/mysql2/lib/commands/command.js:29:26)

0|app      |       at Connection.handlePacket (/home/ubuntu/react-bird/src/server/node_modules/mysql2/lib/connection.js:456:32)

0|app      |       at PacketParser.onPacket (/home/ubuntu/react-bird/src/server/node_modules/mysql2/lib/connection.js:85:12)

0|app      |       at PacketParser.executeStart (/home/ubuntu/react-bird/src/server/node_modules/mysql2/lib/packet_parser.js:75:16)

0|app      |       at Socket.<anonymous> (/home/ubuntu/react-bird/src/server/node_modules/mysql2/lib/connection.js:92:25)

0|app      |       at Socket.emit (events.js:400:28)

0|app      |       at addChunk (internal/streams/readable.js:293:12)

0|app      |       at readableAddChunk (internal/streams/readable.js:267:9)

0|app      |       at Socket.Readable.push (internal/streams/readable.js:206:10) {

0|app      |     code: 'ER_BAD_DB_ERROR',

0|app      |     errno: 1049,

0|app      |     sqlState: '42000',

0|app      |     sqlMessage: "Unknown database 'react-bird'",

0|app      |     sql: undefined

0|app      |   },

0|app      |   original: Error: Unknown database 'react-bird'

0|app      |       at Packet.asError (/home/ubuntu/react-bird/src/server/node_modules/mysql2/lib/packets/packet.js:728:17)

0|app      |       at ClientHandshake.execute (/home/ubuntu/react-bird/src/server/node_modules/mysql2/lib/commands/command.js:29:26)

0|app      |       at Connection.handlePacket (/home/ubuntu/react-bird/src/server/node_modules/mysql2/lib/connection.js:456:32)

0|app      |       at PacketParser.onPacket (/home/ubuntu/react-bird/src/server/node_modules/mysql2/lib/connection.js:85:12)

0|app      |       at PacketParser.executeStart (/home/ubuntu/react-bird/src/server/node_modules/mysql2/lib/packet_parser.js:75:16)

0|app      |       at Socket.<anonymous> (/home/ubuntu/react-bird/src/server/node_modules/mysql2/lib/connection.js:92:25)

0|app      |       at Socket.emit (events.js:400:28)

0|app      |       at addChunk (internal/streams/readable.js:293:12)

0|app      |       at readableAddChunk (internal/streams/readable.js:267:9)

0|app      |       at Socket.Readable.push (internal/streams/readable.js:206:10) {

0|app      |     code: 'ER_BAD_DB_ERROR',

0|app      |     errno: 1049,

0|app      |     sqlState: '42000',

0|app      |     sqlMessage: "Unknown database 'react-bird'",

0|app      |     sql: undefined

0|app      |   }

0|app      | }

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

react-bird 데이터베이스를 안 만드셨는데요?

 sequelize db:create를 안 하신 것 같습니다.

박상우님의 프로필 이미지
박상우
질문자

이런 에러가 나와서 sudo su -> mysql -uroot  -p

해서 use react-bird -> show tables; 하면

 

이렇게 나오면 db 있는거 아닌가요???

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

서버도 sudo su 상태에서 실행하셨나요?

박상우님의 프로필 이미지
박상우
질문자

네 맞습니다

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

서버를 다시 시작하시고 바로 pm2 monit 하셔서 저 에러가 뜨는 게 맞는지 확인해보세요. 옛날 로그를 보고 계신 것일 수도 있습니다.

0

박상우님의 프로필 이미지
박상우
질문자

0

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

에러메시지를 보여주시고, db 설정 코드도 보여주세요.

저 cors 코드는 백엔드 코드인가요? 백엔드 코드에 프론트 아이피가 들어있나요?

박상우님의 프로필 이미지
박상우

작성한 질문수

질문하기