首页 > 解决方案 > 为什么我的索引 POST 请求不起作用?

问题描述

const express = require('express');
const expressLayouts = require('express-ejs-layouts');
const mongoose = require('mongoose');

const app = express();

//DB config
const db = require('./config/keys').mongoURI;

//Connect to Mongo
mongoose.connect(db, { useNewUrlParser: true, useUnifiedTopology: true})
.then(() => console.log('MongoDB connected...'))
.catch(err => console.log(err));

//EJS
app.use(expressLayouts);
app.set('view engine', 'ejs');

//Styles middleware
app.use('/css', express.static('css'));
app.use('/fonts', express.static('fonts'));
app.use('/vendor', express.static('vendor'));
app.use('/js', express.static('js'));

//Bodyparser
app.use(express.urlencoded({extended: false}));

//Routes
app.use('/', require('./routes/index'));


const PORT = process.env.PORT || 5000;

app.listen(PORT, console.log(`Server started on port ${PORT}`));
const express = require('express');

const router = express.Router();

//Welcome/register page
router.get('/', (req, res) => res.render('register'));




router.post('/', (req, res) => {
    console.log(req.body);
    
    res.send('Hello')
});

module.exports = router;
<div class="signup">
    <!-- HEADER -->
    <header class="signup__header">
        <div class="container">
            <div class="signup__header-content">
                <p><a href="#">Already have an account?</a></p>
                <a href="/login" class="btn">Sign In</a>
            </div>
        </div>
    </header>

    <!-- MAIN -->
    <main class="signup__main">
        <img class="signup__bg" src="" alt="">

        <div class="container">
            <form class="signup__container">
                <div class="signup__logo">
                    <a href="#"><img src="fonts/icons/main/Logo_Forum.svg" alt="logo">Musevista</a>
                </div>

                <div class="signup__head">
                    <h3>Create a New Account</h3>
                    <p>By singin up you can start posting, replaying to topics, earn badges, favorite, vote topics and many more.</p>
                </div>
                <form action="/" method="POST">
                <div class="signup__form">
                    <div class="row">
                        <div class="col-md-6">
                            <div class="signup__section">
                                <label class="signup__label" for="first-name">First Name</label>
                                <input type="text" class="form-control" name="firstname" id="first-name" value="<%= typeof firstname != 'undefined' ? firstname : '' %>">
                            </div>
                        </div>
                        <div class="col-md-6">
                            <div class="signup__section">
                                <label class="signup__label" for="last-name">Last Name</label>
                                <input type="text" class="form-control" name="lastname" id="last-name" value="<%= typeof lastname != 'undefined' ? lastname : '' %>">
                            </div>
                        </div>
                    </div>
                    <div class="signup__section">
                        <label class="signup__label" for="username">Username</label>
                        <input type="text" class="form-control" name="username" id="username" value="<%= typeof username != 'undefined' ? username : '' %>">
                    </div>
                    <div class="signup__section">
                        <label class="signup__label" for="email">Email Address</label>
                        <input type="text" class="form-control" name="email" id="email" value="<%= typeof email != 'undefined' ? email : '' %>">
                    </div>
                    <div class="signup__section">
                        <label class="signup__label" for="password">Password</label>
                        <div class="message-input">
                            <input type="password" class="form-control" name="password" id="password" value="<%= typeof password != 'undefined' ? password : '' %>">
                            <span class="message-input__strong">strong</span>
                        </div>
                    </div>
                    <div class="signup__checkbox">
                        <div class="row">
                            <div class="col-md-6">
                                <label class="signup__box">
                                    <label class="custom-checkbox">
                                        <input type="checkbox" checked="checked">
                                        <i></i>
                                    </label>
                                    <span>I agree to the Terms & Conditions.</span>
                                </label>
                            </div>
                            <div class="col-md-6" data-visible="desktop">
                                <label class="signup__box">
                                    <label class="custom-checkbox">
                                        <input type="checkbox">
                                        <i></i>
                                    </label>
                                    <span>Subscribe to newsletter</span>
                                </label>
                            </div>
                        </div>
                    </div>
                    <input class="signup__btn-create btn btn--type-02" type="submit" value="Create New Account">
                </div>
            </form>
            </div>
        </div>
    </main>

    <!-- FOOTER -->
    <footer class="signup__footer">
        <div class="container">
            <div class="signup__footer-content">
                <ul class="signup__footer-menu">
                    <li><a href="#">Teams</a></li>
                    <li><a href="#">Privacy</a></li>
                    <li><a href="#">Send Feedback</a></li>
                </ul>
                <ul class="signup__footer-social">
                    <li><a href="#"><i class="fa fa-facebook-square" aria-hidden="true"></i></a></li>
                    <li><a href="#"><i class="fa fa-twitter" aria-hidden="true"></i></a></li>
                    <li><a href="#"><i class="fa fa-google-plus" aria-hidden="true"></i></a></li>
                    <li><a href="#"><i class="fa fa-dribbble" aria-hidden="true"></i></a></li>
                    <li><a href="#"><i class="fa fa-cloud" aria-hidden="true"></i></a></li>
                    <li><a href="#"><i class="fa fa-rss" aria-hidden="true"></i></a></li>
                </ul>
            </div>
        </div>
    </footer>
</div>

默认情况下,我的网站已加载到注册表,但响应不起作用,并且正文请求被发布到 url。我有一个使用相同索引文件的登录页面,并且该帖子正在工作,只是找到。我认为这可能与我的表单操作没有正确的路径有关。我确信即使作为起始页也可以接收帖子。

标签: javascriptnode.jsejs

解决方案


问题是,您form嵌套在另一种形式中,您应该将 class 的形式更改signup_container为 a div


推荐阅读