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

不过,当傻子真舒服。

相关推荐
神奇小汤圆5 小时前
浅析二叉树、B树、B+树和MySQL索引底层原理
后端
文艺理科生5 小时前
Nginx 路径映射深度解析:从本地开发到生产交付的底层哲学
前端·后端·架构
千寻girling5 小时前
主管:”人家 Node 框架都用 Nest.js 了 , 你怎么还在用 Express ?“
前端·后端·面试
南极企鹅5 小时前
springBoot项目有几个端口
java·spring boot·后端
Luke君607975 小时前
Spring Flux方法总结
后端
define95275 小时前
高版本 MySQL 驱动的 DNS 陷阱
后端
忧郁的Mr.Li6 小时前
SpringBoot中实现多数据源配置
java·spring boot·后端
暮色妖娆丶7 小时前
SpringBoot 启动流程源码分析 ~ 它其实不复杂
spring boot·后端·spring
Coder_Boy_7 小时前
Deeplearning4j+ Spring Boot 电商用户复购预测案例中相关概念
java·人工智能·spring boot·后端·spring
Java后端的Ai之路7 小时前
【Spring全家桶】-一文弄懂Spring Cloud Gateway
java·后端·spring cloud·gateway