배열을 type으로 가지는 (사실상 string화 되어서 저장됌) column에 여러개의 객체를 push해서 update하기
CORS 에러
// 최근 채팅 내용을 보여주기 위한 로직
for (const content of contents) {
await this.chatRepository.saveChatContents(chat_id, content);
}
saveChatContents = async (chat_id, chatRecord) => {
try {
await this.chatsModel.update(
{
content: Sequelize.literal(
`JSON_ARRAY_APPEND(content, "$", '${JSON.stringify(chatRecord)}')`
),
},
{ where: { chat_id } }
);
} catch (error) {
throw error;
}
};
JSON_ARRAY_APPEND
라는 sequelize의 내장함수를 사용해서 배열 안에 string을 계속 append할 수 있다.$
는 맨 뒤를 의미한다. JSON_ARRAY_INSERT
를 사용한다.JSON_ARRAY_INSERT(content, "$[0]", '${JSON.stringify(chatRecord)}')
FE에서 BE에 토큰을 쿠키에 담아 전송해주기 위해 withCredential을 true로 설정해주어야 한다.
const instance = axios.create({
baseURL: "http://localhost:3002/api",
withCredentials: true, // Add this line to enable sending cookies
});
이를 BE에서 받기 위해서는 origin 설정을 *
이 아닌, 특정 url로 지정해주어야 한다. 다음과 같이 설정해주었다.
app.use(
cors({
origin: "http://localhost:3000",
credentials: true,
})
);