Node.js 无法使用express和正文分析器进行POST

Node.js 无法使用express和正文分析器进行POST,node.js,post,Node.js,Post,请你帮我解决一下,由于某些原因,我无法发布,并且得到一个“cannotpost/api/create”,当检查页面时,会显示404错误 这是我的index.js: var express = require('express'); var app = express(); var bodyParser = require('body-parser'); var mainRouter = require('./mainRouter.js'); var todoRoutes = require(

请你帮我解决一下,由于某些原因,我无法发布,并且得到一个“cannotpost/api/create”,当检查页面时,会显示404错误

这是我的index.js:

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

var bodyParser = require('body-parser');

var mainRouter = require('./mainRouter.js');
var todoRoutes = require('./todoRoutes.js');

//tell express to use bodyParser for JSON and URL encoded form bodies
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: false}));

//mouting our routers
app.use('/', mainRouter);
app.use('/todo',todoRoutes);

app.listen(3000);
console.log("Express server running on port 3000");
对应的todoRoutes.js文件就是我需要post方法的地方:

var express = require('express');
var todoRoutes = express.Router();
var todoList = []; //to do list array


todoRoutes.get('/', function(req, res) {
res.sendFile(__dirname + '/views/todo/index.html');
});

todoRoutes.get('/create', function(req, res) {
res.sendFile(__dirname + '/views/todo/create.html');
});

todoRoutes.get('/api/list', function(req, res) {
res.json(todoList); //respond with JSON
});

todoRoutes.get('/api/get/:id',function(req, res){
res.json(todoList[req.params.id]); 
});

todoRoutes.post('/api/create', function(req, res){
console.log("Creating the following todo:", req.body.todo);
todoList.push(req.body.todo);
res.send({redirect: '/api/list'});
});
下面是相应的html文件:

<!DOCTYPE html>
<html lang = "en">
<head>
    <title>Todo List: Create</title>
    <meta charset="utf-8" />
</head>
<body>
    <form action = "/api/create" method="post">
    <div>
        <label for="todo">Enter your new Todo:</label>
        <input type="text" id="todo" name="todo">
    </div>
    <div class="button">
        <button type="submit">Add</button>
    </div>
    </form> 
</body>
</html>

待办事项列表:创建
输入您的新待办事项:
添加
如果我将console.log(“”)放在todoRoutes.js文件的POST函数中,它将不会显示,这表明该函数甚至没有执行


任何帮助都将不胜感激

您需要根据当前的路由处理情况发布到/todo/api/create:

<form action = "/todo/api/create" method="post">