장바구니에 상품이 없습니다.
home2 › 게시판 › Node.js, Express 게시판 › 유저간 채팅기능2 강의를 하다가 막혔습니다...
채팅방 데이터를 ObjectId로 바꾸면 TypeError: Argument passed in must be a Buffer or string of 12 bytes or a string of 24 hex characters
이러한 에러가 뜹니다. 또 /chat에 접속하면 data is not defined 이런 에러코드도 발생하여 막혔습니다ㅠㅠ
objectid로 변환하는 코드가 이상한 것이 아닐까요
아니면 이미 objectid 인데 변환하려는 것일 수도 있겠군요
let suffered_id = req.body.suffered_id let savedata = { title: '무슨무슨채팅방', member: [ObjectId(suffered_id), req.user._id], date: new Date() }
이런식으로 objectid로 변환하는 코드가 되어있고 suffered_id를 출력하면 objectid는 나오지 않습니다.
suffered_id는 유저의 _id 문자가 잘 출력되는지 확인해보도록 합시다
suffered_id와 req.user.id를 출력했을 때 둘 다 잘 나옵니다.
suffered_id 출력해보면 24글자가 맞나요? 앞뒤에 공백이 있거나 그럴수도 있겠군요
suffered_id를 ObjectId로 변환하여 출력이 되지 않는 오류임다ㅠㅠ 그리고 이걸 그냥 objectId가 아닌 id값으로 하면 안되는것인가요?
그냥 id로 해도 상관없습니다
에러메세지는 ObjectId() 안에 넣은게 24글자가 아니라고 알려주는것 같습니다
아 감사합니다. 근데 /chat에 접속했을때 data is not defined라는 오류가 발생합니다..ㅠㅠㅠ
app.get('/chat', Uselogin, (req, res) => { db.collection('chatroom').find({ member: req.user._id }).toArray().then((result) => { res.render('chat.ejs', { data: result }) }) })
코드는 이런식으로 작성했습니다.