使用CodeBuddy IDE五分钟内即可完成ToDoList基础后端开发,在这个AI工具发达的时代,我们已不需要将全部的知识装进大脑,只需有一个大的框架,细节交给AI即可快速建立项目。
环境配置:Node.js
将项目需求描述给codebuddy,我这里模型选的是GPT-5-nano,只需稍等几十秒钟,项目将会完全构建
以下是codebuddy生成的项目(未进行任何修改)
index.js:
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
{
"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安装项目运行所需的库,安装完后直接开始运行看看能不能正常跑起来
测试阶段:
测试接口:(内存存储,重启丢失数据)
请求方式 | 路径 | 功能 |
---|---|---|
GET | /todos | 获取所有待办,可通过查询参数 completed=true/false 进行筛选 |
POST | /todos | 创建待办,body 示例 { "title": "示例", "description": "可选" } |
GET | /todos/:id | 获取指定待办 |
PUT | /todos/:id | 更新待办,支持 title、description、completed |
DELETE | /todos/:id | 删除待办 |
GET | /health | 健康检查 |
获取所有待办:
目前初始化成功但还没有添加数据
创建待办
由于我没有进行前端的编写,这里直接在浏览器控制台模拟前端js发送请求完成接下来的测试,js代码如下:
fetch("/todos", {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ "title": "待办名字", "description": "待办描述" })
})
已成功创建两个待办事项,重新get请求todos可查看已成功添加
通过id获取指定待办信息
更新已有待办事项内容
成功更新
删除待办事项
健康检测
注意事项:
该版本的待办事项数据仅保存在内存,重启后将全部丢失,仅适合开发/测试阶段。不过接下来可以让codebuddy优化成使用json文件存储或者使用数据库(SQLite、PostgreSQL、MongoDB 等)存储数据,交给各位去继续探索了。
我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=6g36nynyzup
评论 (0)