Это сообщение об ошибке, которое я получаю, когда я go направляет /signup/confirm/:id
Ошибка: Передаваемый аргумент должен содержать одну строку из 12 байтов или строка из 24 шестнадцатеричных символов в новом ObjectID (C: \ Users \ royalBishop101 \ Desktop \ Projects \ node-blog \ node_modules \ bson \ lib \ bson \ objectid. js: 59: 11) в Function.findById ( C: \ Users \ royalBishop101 \ Desktop \ Projects \ node-blog \ model \ signups. js: 32: 51)
Вот мой код контроллера:
exports.confirm = (req, res) => {
const id = req.params.id;
Signups.findById(id)
.then(data => {
newUser = new User(data.username, data.password, data.name);
newUser.save()
.then(() => {
Signups.deleteSignup(id)
.then(() => {
res.redirect('admin');
})
.catch(err => console.log(err));
})
.catch(err => console.log(err));
})
.catch(err => console.log(err));
}
Вот мой код модели:
class Signups {
constructor(name, password, username) {
this.name = name;
this.password = password;
this.username = username;
}
static findById(id) {
const db = getDb();
return db.collection('signup').find({
_id: new mongodb.ObjectId(id)
}).next();
}
static deleteSignup(id) {
const db = getDb();
return db.collection('signup').deleteOne({
_id: new mongodb.ObjectId(id)
});
}
}
Если я закомментирую либо шаг 1, либо шаг 2 и выполню код, он сработает, а не выдаст эту ошибку, но если я раскомментирую один из них, где они оба будут беги тогда я получаю ошибку.
Так что я знаю, что это не ошибка в моем методе findbyId
в моей модели, как говорится в ошибке. Не уверен, что происходит.
Заранее спасибо за любую помощь.