【问题标题】:Cannot POST /users/create error while creating form using nodejs express and mysql使用nodejs express和mysql创建表单时无法发布/用户/创建错误
【发布时间】:2022-02-06 17:22:43
【问题描述】:

我正在创建一个表单并获取用户数据,但在填写详细信息并提交表单后它显示 Cannot POST /users/create .试过了,没找到。

app.js 文件-

const express = require('express');
const db = require("./database");

const app = express();
const port = 3000;

app.use(express.urlencoded({extended:false}))
app.set("view engine", "ejs");
app.get("/",(req, res) => {
    res.render("users");
})
app.post('/create', (req, res) => {
    const userDetails = req.body;

    const sql = 'INSERT INTO users SET ?';
    db.query(sql, userDetails,(err, data) => {
        if (err) throw err;
        console.log("user data inserted sucessfully");
    });
    res.redirect('users')
});
app.listen(port, () => {
    console.log(`server created successfully ${port}`);
})

users.ejs 文件-

<div class="user-detail">
    <h2>Create user data</h2>
    <form action="/users/create" method="POST">
        <label>Full name</label>
        <input type="text" placeholder="Enter full name" name="fullName" required>
        <input type="email" placeholder="Enter Email Address" name="emailAddress" required>
        <input type="text" placeholder="Enter city name" name="city" required>
        <input type="text" placeholder="Enter country name" name="country" required>
        <button type="submit">Submit</button>
    </form>
</div> 

输出- 数据库创建成功 服务器启动成功

【问题讨论】:

  • 在您的后端,您将路线定义为/create,而不是/users/create。

标签: html mysql node.js express


【解决方案1】:

如果我错了,请纠正我,但您的路线不匹配。 在您的 ejs 文件中,您写道:&lt;form action='users/create'....&gt; 在您的 app.js 文件中,您的发布请求中的路由是:

app.post('/create', (req, res) => {...}

您必须在前端调用与后端定义相同的端点。

【讨论】:

  • 我试过这样做,但它显示同样的错误
【解决方案2】:

如果你在/users 路径上mount 你的app 会起作用:

express().use("/users", require("./app.js")).listen(80);

但如果你“独立”运行它就不行:

require("./app.js").listen(80);

【讨论】:

    猜你喜欢
    • 2022-01-04
    • 1970-01-01
    • 2020-09-01
    • 2016-09-03
    • 1970-01-01
    • 2012-10-15
    • 2016-12-23
    • 1970-01-01
    • 2017-08-16
    相关资源
    最近更新 更多