使用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/[email protected]/node_modules/bcrypt/lib/binding/napi-v3/bcrypt_lib.node'
Require stack:
- /Users/wanggc/01-work/07-ddcherry/ddcherry-toolbox-api/node_modules/.pnpm/[email protected]/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美元,让自己变成了个傻子。

不过,当傻子真舒服。

相关推荐
WindSearcher4 分钟前
OAuth协议
后端
LanLance21 分钟前
ES101系列09 | 运维、监控与性能优化
java·运维·后端·elasticsearch·云原生·性能优化·golang
Piper蛋窝26 分钟前
我所理解的 Go 的 `panic` / `defer` / `recover` 异常处理机制
后端·go
clk66071 小时前
Spring Boot
java·spring boot·后端
皮皮高2 小时前
itvbox绿豆影视tvbox手机版影视APP源码分享搭建教程
android·前端·后端·开源·tv
弱冠少年2 小时前
golang入门
开发语言·后端·golang
Humbunklung2 小时前
Rust 函数
开发语言·后端·rust
喜欢踢足球的老罗2 小时前
在Spring Boot 3.3中使用Druid数据源及其监控功能
java·spring boot·后端·druid
jakeswang2 小时前
StarRocks
后端·架构
龙云飞谷2 小时前
从原理到调参,小白也能读懂的大模型微调算法Lora
后端