
cors
const cors = require("cors");
app.use(cors()); //모든 접근 허용
처음에는 chat_room, message 테이블만 사용해서 채팅방과 채팅메세지를 저장해야 겠다고 생각했는데, 채팅방에 누가 있는지 확인도 해야해서 중계 테이블로 chat_member 테이블을 만들고 ERD를 확정했다.
이전 프로젝트에서는 초반에 ERD를 작성해서 ERD에 있는 모든 테이블을 한번에 sequelize와 DB를 만들었더니, 개발을 하면서 중간에 DB 구조가 바뀔때마다 모든 사람이 DB를 수정해야하는 번거로움이 있었는데
이번에는 시작할 때 초기 ERD를 작성하고 크게 기능을 묶어서 회원, 게시판, 채팅, 소모임, 유기견으로 시작할 때마다 해당하는 기능의 sequelize, sql을 진행하고, API를 다 작성하면 다음 기능 sequelize, sql 만들고 이런 방식으로 진행했더니 확실히 DB를 수정하는 일이 줄어들었던 것 같았다.
socket.io
server.js 파일에 한번에 작성해서 사용했는데 그렇게 하면 코드가 길어질 것 같아서 이번에는 socket.js 파일을 나누어서 사용해 보았다.// index.js
const connectSocket = require("./socket");
connectSocket(server);
//socket.js
module.exports = (server) => {
const io = require("socket.io")(server, {
cors: {
origin: "http://localhost:3000",
},
});
io.on("connection", (socket) => {
console.log("socket id", socket.id);
});
};
chat_member(id, user_id, chat_id) id is null 이런 오류가 발생했는데
sequelize에서 NOW() 사용시에 현재 시간이 정확하게 저장되지 않음
const sequelize = new Sequelize(
config.database,
config.username,
config.password,
{ ...config, timezone: "Etc/GMT-9" }
);트러블 슈팅이 위에는 짧게 기록되어 있지만 이외에도 postman으로 확인할 때 method를 잘못 입력해서 오류가 몇 번 있었는데...
postman이랑 친해지는 과정이라고 생각해서 트러블 슈팅에는 작성하지 않았다.🥲
그리고 다음에는 오류 메세지도 캡쳐해서 같이 기록하는게 좋을 것 같다.