squadbrodyaga
@squadbrodyaga
帆は風を変えた

Поможете разобраться с POST запросами в Node JS?

Здравствуйте, я прохожу курс по Node JS и схожу сума.

Вообщем хочу научится отправлять данные из формы регистрации, но у меня какой-то косяк, после ввода данных и нажатия на кнопку у меня выходит страница с надписью: Cannot POST /routes/register.js

Если что, моя структура выглядит примерно вот так:
____________________________________
HTML (папка)
— register.html
— index.html

routes (папка)
— register.js

index.js (тут у меня всякая хрень, подключение модулей, роутов и запуск сервера)
____________________________________

Тут содержимое этих файлов:

КОД В register.html
spoiler

<form action="../routes/register.js" method="POST">
 <input type="text">
 <input type="email">
 <input type="password">
 <button>Регистрация</button>
</form>



КОД В register.js
spoiler

const express = require('express')
const path = require('path')
const router = express.Router()

router.get('/register', async (req, res) => {
    res.sendFile(path.join(__dirname, '../HTML', 'register.html'))
})

router.post('/register', async (req, res) => {
    req.session.isAuth = true    // не понимаю, что это за строчка и для чего она нужна
    res.redirect('/index')
})

module.exports = router



Итог: Cannot POST /routes/register.js
P.S: То, что я принимаю и POST и GET запросы в одном роуте это нормально? Просто еще в каком-то видосе парень создал отдельную папку и файл под POST запросы.
  • Вопрос задан
  • 730 просмотров
Решения вопроса 1
@d-sem
req.session.isAuth = true // не понимаю, что это за строчка и для чего она нужна


Пишет в сессию значение. https://xsltdev.ru/nodejs/tutorial/sessions/

Cannot POST /routes/register.js


Потому что action это не путь к файлу. а путь к роуту.

Поэтому нужно или удалить action (потому что uri не меняется, а меняется роут).

или прописать action="/register"


Ошибка возникает из-за того, что роута POST /routes/register.js не существует, потому что существует:
GET /register
POST /register

О чем и сообщается.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы