Вот банальная аутентификация.
User - модель mongodb
Сразу скажу, пароль нужно шифровать - например (bcrypt), соотвественно выбирать не по username и password, а по username, а потом уже сравнивать зашифрованный пароль с полученным из post запроса.
Так как это пример аутентификации json, то вместо success: true, нужно слать токен, но это вам делать, примеров в гугле тонны.
Насчет хочу все сделать сам, не нужно так говорить, а потом спрашивать банальные вещи, которых - опять же, в гугле тонна.
Хипстерский async/await, без него никуда:(
app.post('/login', async (req, res, next) => {
const { username, password } = req.body;
try {
const user = await User.find({ username, password }).exec();
if (!user) {
return res.status(401).json({ message: 'Invalid username or password'});
}
return res.send({ success: true });
} catch(e) {
next(e);
}
});
На клиенте все просто:
1) Шлете ajax запрос (username, password)
2) получаете статус (401/200)
3) парсите json
4) если 401, то выводите ошибку
5) если 200, то редиректите через window.location
p.s написано прямо тут, поэтому за работоспособность не ручаюсь, но вроде - должно все работать.
В догонку, чтоб не спрашивать подобные вопросы, посмотрите скринкаст Ильи Кантора по NodeJS
learn.javascript.ru/screencast/nodejs