Я хочу использовать router.get для извлечения данных из моей коллекции, не используя автоматически сгенерированное поле _id. Я постоянно получаю сообщение об ошибке:
"message": "Cast to ObjectId failed for value \"xxxxxxxxxx\" at path \"_id\" for model \"Member\""
Это мой маршрут:
GET http://localhost:3000/members/xxxxxxxxxx
Это моя функция запроса
async function getMemberBySSN(req, res, next) {
let member
try {
member = Member.find({ ssn: req.params.ssn }, null);
if (member == null) {
return res.status(404).json({ message: "Cannot find member" });
}
} catch(e) {
return res.status(500).json({ message: e.message });
}
res.member = member
next();
}
Который я вызываю из этот маршрут:
router.get("/:ssn", getMemberBySSN, (req, res) => {
res.json(res.member);
})
Это модель
const mongoose = require("mongoose");
// Object containing keys for different props in member
const memberSchema = new mongoose.Schema({
ssn: {
type: String,
required: true
},
name: {
type: String,
required: true
},
email: {
type: String,
require: true
},
isJunior: {
type: Boolean,
required: true
},
isAdmin: {
type: Boolean,
required: true
},
});
//params: name of model in db, the schema that corresponds to the model, the collection in db
module.exports = mongoose.model("Member", memberSchema, "_splurggenMembers");
Любая помощь приветствуется. Спасибо.