#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. Я думаю, что это проблема с потоком кода