Запустив этот проект через мой личный проект mongoose / express-using, я получаю следующую ошибку:
UnhandledPromiseRejectionWarning: CastError: Cast to ObjectId failed for value "12345" at path "_id" for model "User"
Это в основном означает, что Mongoose ожидает свой собственный конкретный тип объекта, "ObjectId". Это немного сложно, так как обычно, если вы используете .findOne ({_ id: что-то), вы можете просто использовать строку. Если мы сделаем:
User.findById(mongoose.Types.ObjectId(_id))
это должно работать. Обратите внимание, что если вы используете недопустимый идентификатор (как я, очевидно, здесь и сделал, он выдаст ошибку все равно . По этой причине я бы использовал стандартный формат NodeJS для штук обратного вызова:
.then((err,result)=>{
//other stuff
});
В общем случае, блок .catch () должен выполняться только в том случае, если очевидно Mongoose и ваш маршрутизатор не может обработать.
РЕДАКТИРОВАТЬ: Кроме того, для других, Mongoose.model.findById является встроенным вспомогательным методом и должен в основном делать именно то, что он говорит на банке.