Estaba creando una base de datos que almacenaba información del usuario. Anteriormente, el sistema funcionaba bien, después de realizar la actualización npm de mongoose, el sistema falló y no sé por qué. El siguiente es el mensaje de error que encontré.
CastError: Cast to ObjectId failed for value "xxxxxxxxxxxxxxx" at path "_id" for model "User"Luego, escribo un código de prueba simple para probar si la base de datos está conectada correctamente. Por ejemplo:
User.findOne({firstName: "David"}, function(err, user){console.log(user.lastName)});Lo anterior funcionó perfectamente.
Luego encontré la identificación correspondiente de la base de datos directamente y creé una variable como:
var testId = "abcde"y probé el siguiente código:
User.findById(testId, function(err, user){console.log(user.firstName)});Luego solo emite los mensajes de error.
mongoose.Types.ObjectId.isValid('abcde') (abcde es solo un ejemplo) y volvió verdadero. Por lo tanto, realmente no tengo idea de por qué no funcionó... ¿es un error de mangosta?
Por favor ayuda si sabes la respuesta, muchas gracias!
Acabo de resolver el problema.
Como mencioné, la función findById no funcionó después de actualizar mongoose. Estuve luchando con el código durante unos días y cuando me desperté esta mañana, de repente pensé en actualizar mi node.js.
Eso funciono.
Después de actualizar node.js de v4.xx a la última versión, todo funcionó bien :)
Esto me enseñó una lección de que no debería actualizar un solo módulo solo y preocuparme por el problema de compatibilidad.