使用Cursor创建NestJS项目实录(1)一个月20$让自己成了个舒服的傻子

文章首发地址:Java小成

前言

使用Cursor创建一个在线工具箱的后台API,因为最近在学习NestJS,一番调研后制定了如下技术栈。

  • NestJS v11.0.1
  • TypeScript v5.7.3
  • MySQL8
  • Prisma 6.5.0
  • Redis
  • JWT

创建步骤

创建NestJS项目:

bash 复制代码
nest new ddcherry-toolbox-api

进入项目根目录:

bash 复制代码
cd ddcherry-toolbox-api

运行项目:

arduino 复制代码
pnpm run start

在浏览器中输入项目地址http://localhost:3000然后就能看到我们熟悉的Hello World了。

复制代码
Hello World!

使用Cursor打开项目。

使用快捷键command + I打开Agent模式,输入如果提示词:

diff 复制代码
这是一个在线工具箱后台服务。包管理工具使用pnpm。我决定使用的技术栈如下:
- NestJS
- TypeScript
- MySQL
- Prisma
- Redis
- JWT

目前项目刚初始创建。请帮我设计项目目录。
要求:
- 采用模块化设计,便于扩展和维护。

更新要同步到README.md文件中。

请开始处理。

等待Cursor操作完成。

因为我对cursor生成的文件夹名不太满意。就输入了如下提示词让他帮我更新下文件夹名。

arduino 复制代码
修改项目下文件夹命名,能使用单数的话尽量使用单数,不能使用单数的情况再使用复数,也就是尽量不使用复数。同步更新README.md文件。最后根据项目的实际情况,生成一个适合当前项目的cursor rule,防止生成代码的时候忘记规则。

在上面的提示词中,我让cursor同时生成了项目的规则文件,防止以后cursor生成代码目录时不符合我的喜好。

KUA KUA KUA Cursor一顿操作,运行项目,报错了。

我把错误信息复制给Cursor,让他改。同时让他不要再犯类似的错误。毕竟Token是要钱的

python 复制代码
项目启动报错了。Argument of type 'string | undefined' is not assignable to parameter of type 'string'.
  Type 'undefined' is not assignable to type 'string'.

5   port: parseInt(process.env.REDIS_PORT, 10) || 6379, 
修复完检查类似问题,不要再出现。

KUA KUA KUA Cursor一顿操作,运行项目,又报错了。

还是告诉Cursor出错了。

ruby 复制代码
启动报错了:node:internal/modules/cjs/loader:1247
  throw err;
  ^

Error: Cannot find module '/Users/wanggc/01-work/07-ddcherry/ddcherry-toolbox-api/node_modules/.pnpm/bcrypt@5.1.1/node_modules/bcrypt/lib/binding/napi-v3/bcrypt_lib.node'
Require stack:
- /Users/wanggc/01-work/07-ddcherry/ddcherry-toolbox-api/node_modules/.pnpm/bcrypt@5.1.1/node_modules/bcrypt/bcrypt.js
- /Users/wanggc/01-work/07-ddcherry/ddcherry-toolbox-api/dist/module/user/user.service.js
- /Users/wanggc/01-work/07-ddcherry/ddcherry-toolbox-api/dist/module/user/user.module.js
- /Users/wanggc/01-work/07-ddcherry/ddcherry-toolbox-api/dist/app.module.js
- /Users/wanggc/01-work/07-ddcherry/ddcherry-toolbox-api/dist/main.js

KUA KUA KUA Cursor一顿操作,运行项目,又报错了。

手动调整了.env文件中的数据库配置信息。然后,告诉Cursor出错了。

ini 复制代码
还是报错:PrismaClientInitializationError: error: Environment variable not found: DATABASE_URL.
  -->  schema.prisma:7
   |
 6 |   provider = "mysql"
 7 |   url      = env("DATABASE_URL")
   |

Validation Error Count: 1

KUA KUA KUA Cursor一顿操作,运行项目,又报错了。

这次看错误信息,是因为没有创建数据表。

Cursor没有自动给我创建表嘛(我也是越来越懒了!!!)。

我在prisma > schema.prisma中调整了下数据库表名。然后输入如下提示词让Cursor帮我创建建表脚本:

复制代码
我调整了下表名,帮我生成建表脚本文件,放在适当的文件夹下,同时同步更新README.md文件和rules.json文件。

KUA KUA KUA Cursor一顿操作,Cursor给我提供了两种方案来初始化数据库:

  1. 使用SQL脚本
bash 复制代码
mysql -u root -p < prisma/migration/init.sql
  1. 使用Prisma迁移:
bash 复制代码
npx prisma migrate dev --name init

这里我选择了方案2,直接点击命令行上的Run,数据库初始化完成。

再次启动项目,启动成功。

在浏览器地址栏输入http://localhost:3000/users调用一个查询接口。没报错,完美!!!

总结

在项目创建过程中,我的任务说是告诉Cursor做什么,协助Cursor执行命令(点击Run、Run、Run),然后把错误告诉Cursor让他修复错误。

我感觉,这个任务,一个傻子都能做。

一个月20美元,让自己变成了个傻子。

不过,当傻子真舒服。

相关推荐
爱勇宝2 小时前
第 1 章:别把“需求文档”当成真正的需求
前端·后端·程序员
IT_陈寒7 小时前
闭包陷阱让我加了两天班,JavaScript你真行
前端·人工智能·后端
易协同低代码8 小时前
通达OA核心类库TD类深度解析
后端
Gopher_HBo8 小时前
Go语言学习笔记(十八)Gin处理Session
后端
谭光志9 小时前
工具塞满上下文窗口怎么办?深度拆解 AI Agent Tool Search 按需加载实现原理
前端·后端·ai编程
她说..9 小时前
Java 默认值设置方式
java·开发语言·后端·springboot
foggyprojects9 小时前
从0开始,一句话启动AI DataAgent
后端·数据分析·ai编程
郡杰9 小时前
一些基础和问题解决
后端
陈随易9 小时前
前端项目部署只要30秒
前端·后端·程序员
YIAN9 小时前
从零手写文件读取 MCP 服务:一文吃透 Model Context Protocol 全链路通信原理
前端·后端·mcp