首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >五分钟开发ToDoListAPP后端

五分钟开发ToDoListAPP后端

原创
作者头像
圆弧
发布2025-08-14 21:53:23
发布2025-08-14 21:53:23
2760
举报
codebuddy
codebuddy

使用CodeBuddy IDE五分钟内即可完成ToDoList基础后端开发,在这个AI工具发达的时代,我们已不需要将全部的知识装进大脑,只需有一个大的框架,细节交给AI即可快速建立项目。 环境配置:Node.js

将项目需求描述给codebuddy,我这里模型选的是GPT-5-nano,只需稍等几十秒钟,项目将会完全构建

codebuddyide
codebuddyide

以下是codebuddy生成的项目(未进行任何修改)

index.js:

代码语言:javascript
复制
const express = require('express');
const app = express();
const port = process.env.PORT || 3000;

// In-memory storage
let todos = [];
let nextId = 1;

function findTodo(id) {
  return todos.find(t => t.id === id);
}

app.use(express.json());

// Get all todos, with optional filtering by completion status
app.get('/todos', (req, res) => {
  const completed = req.query.completed;
  if (completed !== undefined) {
    const isDone = completed === 'true';
    return res.json(todos.filter(t => t.completed === isDone));
  }
  res.json(todos);
});

// Get a single todo by id
app.get('/todos/:id', (req, res) => {
  const id = parseInt(req.params.id, 10);
  const t = todos.find(t => t.id === id);
  if (!t) return res.status(404).json({ error: 'Todo not found' });
  res.json(t);
});

// Create a new todo
app.post('/todos', (req, res) => {
  const { title, description } = req.body;
  if (!title) return res.status(400).json({ error: 'title is required' });

  const todo = {
    id: nextId++,
    title,
    description: description || '',
    completed: false,
    createdAt: new Date().toISOString(),
    updatedAt: new Date().toISOString()
  };
  todos.push(todo);
  res.status(201).json(todo);
});

// Update an existing todo
app.put('/todos/:id', (req, res) => {
  const id = parseInt(req.params.id, 10);
  const t = todos.find(t => t.id === id);
  if (!t) return res.status(404).json({ error: 'Todo not found' });

  const { title, description, completed } = req.body;
  if (title !== undefined) t.title = title;
  if (description !== undefined) t.description = description;
  if (completed !== undefined) t.completed = completed;

  t.updatedAt = new Date().toISOString();
  res.json(t);
});

// Delete a todo
app.delete('/todos/:id', (req, res) => {
  const id = parseInt(req.params.id, 10);
  const idx = todos.findIndex(t => t.id === id);
  if (idx === -1) return res.status(404).json({ error: 'Todo not found' });
  const removed = todos.splice(idx, 1);
  res.json(removed[0]);
});

// Health check (optional)
app.get('/health', (req, res) => {
  res.json({ status: 'ok', todoCount: todos.length });
});

app.listen(port, () => {
  console.log(`Todo backend listening at http://localhost:${port}`);
});

package.json

代码语言:json
复制
{
  "name": "todolist-backend",
  "version": "1.0.0",
  "description": "In-memory Todo List backend using Node.js + Express",
  "main": "index.js",
  "scripts": {
    "start": "node index.js"
  },
  "dependencies": {
    "express": "^4.18.2"
  }
}

接下来进行npm安装项目运行所需的库,安装完后直接开始运行看看能不能正常跑起来

mebdyaqa.png
mebdyaqa.png

测试阶段:

测试接口:(内存存储,重启丢失数据)

请求方式

路径

功能

GET

/todos

获取所有待办,可通过查询参数 completed=true/false 进行筛选

POST

/todos

创建待办,body 示例 { "title": "示例", "description": "可选" }

GET

/todos/:id

获取指定待办

PUT

/todos/:id

更新待办,支持 title、description、completed

DELETE

/todos/:id

删除待办

GET

/health

健康检查

获取所有待办:

mebe8wrx.png
mebe8wrx.png

目前初始化成功但还没有添加数据

创建待办

由于我没有进行前端的编写,这里直接在浏览器控制台模拟前端js发送请求完成接下来的测试,js代码如下:

代码语言:javascript
复制
fetch("/todos", {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({ "title": "待办名字", "description": "待办描述" })
})
mebebqwl.png
mebebqwl.png

已成功创建两个待办事项,重新get请求todos可查看已成功添加

mebed9yl.png
mebed9yl.png

通过id获取指定待办信息

mebeeegt.png
mebeeegt.png
mebeet8z.png
mebeet8z.png

更新已有待办事项内容

mebehhgu.png
mebehhgu.png

成功更新

mebehygl.png
mebehygl.png

删除待办事项

mebejchw.png
mebejchw.png
mebejr8h.png
mebejr8h.png

健康检测

mebekpzb.png
mebekpzb.png

注意事项: 该版本的待办事项数据仅保存在内存,重启后将全部丢失,仅适合开发/测试阶段。不过接下来可以让codebuddy优化成使用json文件存储或者使用数据库(SQLite、PostgreSQL、MongoDB 等)存储数据,交给各位去继续探索了。

评论区留言“CodeBuddy”抽5位送永久体验码!

CodeBuddyIDE官网:https://www.codebuddy.ai/

#AIIDE #CodeBuddy推荐官

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 获取所有待办:
  • 创建待办
  • 通过id获取指定待办信息
  • 更新已有待办事项内容
  • 删除待办事项
  • 健康检测
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档