Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Express.js路由器post请求返回404_Javascript_Node.js_Express_Post_Http Status Code 404 - Fatal编程技术网

Javascript Express.js路由器post请求返回404

Javascript Express.js路由器post请求返回404,javascript,node.js,express,post,http-status-code-404,Javascript,Node.js,Express,Post,Http Status Code 404,当我尝试从html表单发送请求时,我的express服务器返回404错误。然而,get请求工作正常。我已将服务器和路由的文件分开。我无法在app.js中发出请求,因为请求太多(针对不同的页面)。我想向db发出post insert请求,但我无法从我的表单中获得任何信息 我遗漏了什么吗 我的html表单(ejs) my./routes/events.js文件 const express = require('express'); const router = express.Router();

当我尝试从html表单发送请求时,我的express服务器返回404错误。然而,get请求工作正常。我已将服务器和路由的文件分开。我无法在app.js中发出请求,因为请求太多(针对不同的页面)。我想向db发出post insert请求,但我无法从我的表单中获得任何信息

我遗漏了什么吗

我的html表单(ejs)

my./routes/events.js文件

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

router.get('/', function (req, res, next) {
    let query = '*select query*';
    res.locals.connection.query(query, function (error, results, fields) {
        if (error) throw error;
        res.render('index', { title: 'Events', data: results });
    });
});

router.post('/add', function (req, res) {
    var obj = req.body.title;

    console.log(obj);
    res.redirect('/events');
});

您的'routes/events.js'文件中列出了'add'端点,这会导致最终路由的结构为'/events/add'。在您的表单中,您将发送到'/add'端点,因此要解决此问题,请将表单上的操作道具更改为'/events/add',或将'/add'端点移动到自己的路由中,如下所示:

router.post('/add', function(req, res) {
    var obj = req.body.title;

    console.log(obj);
    res.redirect('/events');
});

“routes/events.js”文件中列出了“add”端点,这将导致最终路由的结构为“/events/add”。在表单中,您将发送到“/add”端点,因此要解决此问题,请将表单上的操作道具更改为“/events/add”,或将“/add”端点移动到自己的路由中,如下所示:

router.post('/add', function(req, res) {
    var obj = req.body.title;

    console.log(obj);
    res.redirect('/events');
});

谢谢!我对这个路径有点困惑,因为我刚刚开始学习这个。现在很好,谢谢你。你对我的问题也有帮助。总是三重检查你的安装方式,非常感谢!我对这个路径有点困惑,因为我刚刚开始学习这个。现在很好,谢谢你。你对我的问题也有帮助。总是三重检查你安装路线的方式lol
router.post('/add', function(req, res) {
    var obj = req.body.title;

    console.log(obj);
    res.redirect('/events');
});