• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

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

21.11.30 13:31 작성 조회수 266

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

박상우님의 프로필

박상우

질문자

2021.11.30

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

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

 

src/server 

0

박상우님의 프로필

박상우

질문자

2021.11.30

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

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

0

박상우님의 프로필

박상우

질문자

2021.11.30

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

0

박상우님의 프로필

박상우

질문자

2021.11.30

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;

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

박상우님의 프로필

박상우

질문자

2021.11.30

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

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

박상우님의 프로필

박상우

질문자

2021.11.30

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

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

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

박상우님의 프로필

박상우

질문자

2021.11.30

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

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

0

박상우님의 프로필

박상우

질문자

2021.11.30

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

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

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

pm2 logs --err --lines 200

박상우님의 프로필

박상우

질문자

2021.11.30

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를 안 하신 것 같습니다.

박상우님의 프로필

박상우

질문자

2021.11.30

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

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

 

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

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

박상우님의 프로필

박상우

질문자

2021.11.30

네 맞습니다

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

0

박상우님의 프로필

박상우

질문자

2021.11.30

0

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

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