Ошибка приведения мангуста к номеру для значения «{ ip: 78 }» в пути «ip»?

#javascript #node.js #mongoose #mongoose-schema

#javascript #node.js #mongoose #mongoose-schema

Вопрос:

Я создал схему для сохранения ip-адреса. При сохранении моей модели mongoose возвращает меня:

ip: Ошибка приведения к номеру для значения «{ ip: 78 }» в пути «ip»

Но мой номер является целым числом, поэтому он должен работать хорошо.

Вот моя схема:

 const mongoose = require("mongoose");
const Schema= mongoose.Schema;

var ChatSchema = new Schema({    
    // _id:ObjectId,
    ip:{required:true, type: Number},
    message: {required:true, type: Array},
    room: String
});

module.exports = mongoose.model("Chat", ChatSchema) 
  

Вот мой фрагмент socketEmit:

 this.socket.emit("join", {
    ip: Math.round(Math.random() *100)
}
  

Здесь мой server.js чтобы сохранить мои данные в mongoose:

  if(ChatScanValue === undefined){ 
        console.log("!Chat.find(ip)")
        var prospectChat= new Chat({ip, message:["empty_chat"]})
        console.log("prospectChat: ", prospectChat)
        prospectChat.save((err, chatData) => { 
            if(err) throw err; 
            console.log("chat object created.")
 })
  

Почему это не удается? Я не могу понять это, я попытался поиграть с объектом, переданным в чате, изменить значение ip , изменить SchemaType в модели моего мангуста. Я все еще ищу причину ошибки.

Любая подсказка была бы отличной, спасибо

Комментарии:

1. где вы назначаете ip переменную? Я предполагаю, что это не число, а объект, содержащий ip свойство

2. да, это объект, содержащий следующее свойство ip: {ip: value} объект передается от клиента к событию «join» в моем сокете, затем происходит обработка, которую я воспроизвел в своем сообщении. Так что мы с ит ожидаем, что когда я передам свой ip-объект в мою схему mongoose, он должен автоматически присваивать значение полю ip со значением ip.ip ? следовательно, ip передается непосредственно в пространство полей, подобное воспроизведенному: new Chat({ip, message:["empty_chat"]})

3. Что произойдет, если вы создадите новый чат с new Chat({ ip: ip.ip, ... }) помощью напрямую? Я не уверен, что схема извлечет поля, как вы подразумеваете

4. да, я попробовал вашу замечательную идею, и она возвращает: Cannot destructure property ip` из ‘undefined’ или ‘null», я пытаюсь понять, почему в настоящее время

5. Я думаю, что это проблема с потоком кода