How do you handle async errors with Mongoose?
Wrap async handlers with asyncHandler that catches promise rejections and calls next(err). Catch duplicate key errors (err.code === 11000) and return 409. Catch ValidationError and return 400 with field list.
Verify This Answer
Cross-check this information using these trusted sources:
More FAQs in Mongoose Models Interview Questions and Answers
A schema defines the shape of a document (fields, types, validation). A model is a constructor compiled from a schema; it is what you use to query the database. Schema is the blueprint; model is the database interface.
Use a pre('save') hook. Check this.isModified('passwordHash'). If yes, hash with bcrypt. Mark the field with select: false so it is not returned by default. This keeps hashing logic close to the data.
Add a unique index on the field. Catch err.code === 11000 in your handler and return 409 with a clear message. The unique index enforces uniqueness; the catch gives clean UX instead of a 500.
Still have questions?
Browse all our FAQs or reach out to our support team
