Page 552 - Nodejs 교과서 개정2판
P. 552
});
document.querySelector('#chat-form').addEventListener('submit', function (e) {
e.preventDefault();
if (e.target.chat.value) {
axios.post('/room/{{room._id}}/chat', {
chat: this.chat.value,
})
.then(() => {
e.target.chat.value = '';
})
.catch((err) => {
console.error(err);
});
}
});
</script>
{% endblock %}
socketী chat ߮ ܻझցܳ ୶о೮णפ chat ߮ח ݫदо ਢ ࣗਵ۽ ࣠ؼ ٸ ഐؾפ
ݫद ߊ࣠ data.user ী ٮۄ ղ ݫद mine ېझ ੋ թ ݫद PUIFS ېझ ੋ ഛੋೠ റ
Ӓী ݏѱ ۪؊݂פ ਸ ࣠ೞח ಬী submit ߮ ܻझցب ୶о೮णפ
ৈ۞ о ߑधਵ۽ ҳഅೡ ࣻ णפ അ (*' ߑ ҃ীח ղਊਸ ؘఠ߬झী
ೞ۽ ۄఠܳ Ѣب۾ ࢸ҅೮णפ
ઁ ߑী ࣘೞח ࠗ࠙җ ਸ ೞח ࠗ࠙ਸ ٜ݅যࠁѷणפ
routes/index.js
...
router.get('/room/:id', async (req, res, next) => {
try {
const room = await Room.findOne({ _id: req.params.id });
const io = req.app.get('io');
if (!room) {
return res.redirect('/?error=존재하지 않는 방입니다.');
}
if (room.password && room.password !== req.query.password) {
return res.redirect('/?error=비밀번호가 틀렸습니다.');
}
const { rooms } = io.of('/chat').adapter;
if (rooms && rooms[req.params.id] && room.max <= rooms[req.params.id].length) {
return res.redirect('/?error=허용 인원이 초과하였습니다.');
}
const chats = await Chat.find({ room: room._id }).sort('createdAt');