首页 > 解决方案 > 无法在 express js 应用程序中发布我的表单

问题描述

我正在尝试独立构建我的第一个应用程序,但我无法解决这个问题。如果有人帮助我了解问题所在,我将不胜感激。单击提交按钮后,我收到错误无法 POST /。我怀疑我犯了一个微不足道的错误,这对我来说很烦人。我认为问题出在我的路线文件中。

这是我的html form(写在ejs):

<%- include('includes/start.ejs') %>

    <%- include('includes/navbar.ejs') %>
    <div class="container">
    <p>Here you can create your Tournament!</p>
    <form class="form" action="/" method="POST">
        <label>Discypline:</label><br>
        <input type="text" name="discipline" placeholder="E.G. Chess"><br><br>
        <label for="lname">Tournament type:</label><br>
        <select name="type">
            <option value="Bracket Tournament">Bracket Tournament</option>
            <option value="League Tournament">League Tournament</option>
        </select><br><br>
        <label>Description of Tournament:</label><br>
        <textarea name="description" rows="4" cols="50"></textarea><br><br>
        <input type="submit" value="Submit"><br>
      </form> 


<%- include('includes/end.ejs') %>
    </div>

这是我的route文件:

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

const bodyParser = require('body-parser');
router.use(bodyParser.urlencoded({extended: false}));
router.use(bodyParser.json());

const Tournament = require('../models/tournament.js')

router.get('/creator', (req, res, next) => {
    res.render('../views/creator.ejs');
});

router.post('/creator', (req, res, next) => {
    //const tournament = new Tournament()

    console.log(req.body.discipline);
    return;

});

module.exports = router;

这是我的app代码:

const express = require('express');
const app = express();

const path = require('path');

const homeRouter = require('.//routes/home.js');
const creatorRouter = require('.//routes/creator.js');


app.set('view engine', 'ejs');
app.use(express.static(path.join(__dirname, 'public')));


app.use('/', homeRouter);
app.use('/', creatorRouter);

app.listen(3000);

感谢您的帮助。此致。

标签: javascriptexpresspostejs

解决方案


推荐阅读