Получение не может опубликовать ошибку в приложении узла - PullRequest
1 голос
/ 07 марта 2020

Приветствую всех, я изучаю полный стек javascript разработка с помощью видеоуроков Я новичок в разработке, прошу вас помочь мне !!

В моем приложении есть приложение. js Код файла

const express = require("express")
const app = express()
const router = require("./router")
app.set("views", "views")
app.set("view engine", "ejs")
app.use(express.static("public"))
app.get("/", router)
app.listen(3000)

Маршрутизатор. js код файла

    const express = require("express")
    const router = express.Router()
    const userController = require("./controllers/userController.js")
    router.get("/", userController.home)
    router.post("/register", userController.register)
    module.exports = router

userController. js файл в папке контроллера находится в

exports.register = function(req, res){
    res.send("Thanks for trying to register")
}
exports.home = function(request, response){
    response.render("home-guest")
}

Я использую e js и home.e js файл имеет форму html при попытке отправить форму, например

<form action="/register" method="POST" id="registration-form">
<div class="form-group">
          <label for="username-register" class="text-muted mb-1"><small>Username</small></label>
          <input name="username" id="username-register" class="form-control" type="text" placeholder="Pick a username" autocomplete="off">
        </div>
    </form>

Почему я получаю сообщение об ошибке - Невозможно выполнить POST / регистрация

1 Ответ

1 голос
/ 07 марта 2020

Вы используете свой маршрутизатор только для GET запросов здесь:

app.get("/", router)

Вот почему POST s вообще не ударяют по вашему маршрутизатору.

Вы можете смонтировать он обрабатывает все методы istead через app.use():

app.use("/", router)

Подробнее о разнице между этими двумя здесь: Разница между app.use и app.get в express. js

...