У меня проблема - в базу попадают документы с полями которые не входят в схему валидации. Я ничего не смог нагуглить на этот счёт кроме двух вопросов без ответов и пришёл к выводу что пора типизировать входы/выходы. Однако, допустим у меня есть желаемый интерфейс входа в роут:
interface RequestModel<T> extends Request {
body: T
}
interface UserRegisterModel {
first_name: string;
last_name: string;
email: string;
password: string;
}
app.post('/register', async (req: RequestModel<UserRegisterModel>, res) => {
if(req.body) {
const user: UserRegisterModel = req.body;
}
});
Это не помешает с клиента прокинуть лишние поля, которых нет в схеме, есть ещё пакеты для json схем, пока не стал ставить, но буду пробовать.
И так вопрос - Как мне либо в монго, либо в экспрессе отсечь все лишние поля?
Вот пример входа/выхода:
interface UserModel { id: string; }
const userInput = { id: 'b88-c234' , name: 'John' };
const userOutput = userInput; // Сейчас получаем аналогичный объект пришедшему.
// А нужно получить по схеме, остальное убрать:
const userOutputWithSchema = { id: 'b88-c234' }