使用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美元,让自己变成了个傻子。

不过,当傻子真舒服。

相关推荐
水深火乐3 小时前
安全地生成验证码、密码和 Token
后端
小强19883 小时前
SQL Server 慢查询怎么定位?一套从“卡”到“快”的完整排查流程
后端
水深火乐3 小时前
interface和any
后端
步行cgn3 小时前
MyBatis Error evaluating expression ‘ids‘. Return value (3) was not iterable 错误详
java·后端
神奇小汤圆3 小时前
Spring Boot + LangChain4j实现RAG——从零搭建企业级知识库问答系统
后端
H_Peak3 小时前
Python运算符与流程控制:if条件判断
后端
H_Peak3 小时前
Python字符串操作:从基础到正则入门
后端
自进化Agent智能体3 小时前
Hermes 子代理委派 —— 并行工作的艺术
后端
步行cgn3 小时前
MyBatis 动态 SQL 中的 <foreach> 标签完全解析
后端
HjhIron3 小时前
NestJS 入门指南:从工厂模式到模块化 CRUD 实战
前端·nestjs