В настоящее время я застрял в ошибке, которая возникает при попытке выполнить POST-запросы к локальной тестовой конечной точке.
Я использую Insomnia для отправки простого запроса Resister JSON POST на http://localhost:5000/api/auth/register со следующим:
{
"email":"[email protected]",
"username":"test",
"password":"test"
}
Однако я получаю ответ 404, но просматривая журналы и выполняя отладку запроса к моей базе данных?
Этот ответ, похоже, отправляется перед блоком trycatch. Затем сервер падает, потому что он не может снова отправить заголовок, если есть дальнейшие ошибки.
блок кода для запроса ниже:
const register = async (
req: Request,
res: Response
): Promise<Response<any>> => {
const { email, username, password } = req.body;
try {
// VALIDATE DATA
let errors: any = {};
const emailUser = await User.findOne({ email });
const usernameUser = await User.findOne({ username });
if (emailUser) errors.email = "sorry, email is already taken";
if (usernameUser) errors.username = "sorry, username is already taken";
if (Object.keys(errors).length > 0) {
return res.status(400).json(errors);
}
// CREATE THE USER
const user = new User({ email, username, password });
errors = await validate(user);
if (errors.length > 0) {
return res.status(400).json(mapErrors(errors));
}
await user.save();
// RETURN THE USER
return res.json(user);
} catch (err) {
console.info(err);
return res.status(500).json(err);
}
};
...
const router = Router();
router.post("/register", register);
...
import authRoutes from "./routes/auth";
...
app.use("/api/auth", authRoutes);
...
app.listen(PORT, async () => {
console.info(`Server running at http://localhost:${PORT}`);
try {
await createConnection();
console.info("Database Connected");
} catch (error) {
console.info(error);
}
Будем признательны за любую помощь, и, пожалуйста, дайте мне знать, если вам нужны какие-либо другие блоки кода.





Неважно - я исправил это, у меня было промежуточное программное обеспечение для удаления пробелов из имени пользователя и электронной почты - я вызвал функцию next() внутри неправильного блока кода. Помещение его вне блока решило все эти проблемы.