You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

数据库已连接但无法新增Todo数据,Postman报Cannot GET /api/v1/createTodo错误

问题分析与解决

核心问题

错误Cannot GET /api/v1/createTodo的直接原因是:你在Postman中使用了GET请求方法,但代码里/api/v1/createTodo路由仅支持POST请求。

具体修正步骤

1. 调整Postman请求方式

在Postman中:

  • 将请求方法从GET切换为POST
  • 在Body选项卡选择raw,格式设为JSON,传入示例请求体:
{
  "title": "待办标题",
  "description": "待办描述"
}

2. 修正文件路径与注释混淆问题

你的代码注释存在路径错误:

  • todos.js实际应放在routes文件夹(而非标注的models folder)
  • Todo模型文件应放在models文件夹(而非标注的routes folder)
    确保项目文件结构如下:
项目根目录/
├── config/
│   └── database.js
├── controllers/
│   └── createTodo.js
├── models/
│   └── Todo.js
├── routes/
│   └── todos.js
├── app.js
└── .env

3. 修复模型时间字段的默认值问题

模型中createdAt和updatedAt的default:Date.now()会导致所有文档的时间固定为服务器启动时间,需改为不带括号的Date.now,让Mongoose在创建文档时自动生成当前时间:

// models/Todo.js
const mongoose = require("mongoose");

const todoSchema = new mongoose.Schema(
    {
        title:{
            type:String,
            required:true,
            maxLength:50,
        },
        description: {
            type:String,
            required:true,
            maxLength:50,
        },
        createdAt:{
            type:Date,
            required:true,
            default:Date.now, // 去掉括号
        },
        updatedAt:{
            type:Date,
            required:true,
            default:Date.now, // 去掉括号
        }
    }
);

module.exports = mongoose.model("Todo", todoSchema);

4. 可选:自动维护更新时间

如果希望文档修改时自动更新updatedAt,可以用Mongoose的timestamps选项替代手动定义的时间字段,简化代码:

// models/Todo.js
const mongoose = require("mongoose");

const todoSchema = new mongoose.Schema(
    {
        title:{
            type:String,
            required:true,
            maxLength:50,
        },
        description: {
            type:String,
            required:true,
            maxLength:50,
        }
    },
    { timestamps: true } // 自动生成createdAt和updatedAt,更新时自动修改updatedAt
);

module.exports = mongoose.model("Todo", todoSchema);

验证流程

  1. 重启Express服务器
  2. 在Postman中发送POST请求到http://localhost:4000/api/v1/createTodo,携带正确的JSON请求体
  3. 查看MongoDB数据库,确认新的Todo文档已成功创建

内容的提问来源于stack exchange,提问作者Harshada patil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 17:37:11