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

不过,当傻子真舒服。

相关推荐
ai小鬼头6 小时前
Ollama+OpenWeb最新版0.42+0.3.35一键安装教程,轻松搞定AI模型部署
后端·架构·github
萧曵 丶6 小时前
Rust 所有权系统:深入浅出指南
开发语言·后端·rust
老任与码7 小时前
Spring AI Alibaba(1)——基本使用
java·人工智能·后端·springaialibaba
华子w9089258597 小时前
基于 SpringBoot+VueJS 的农产品研究报告管理系统设计与实现
vue.js·spring boot·后端
星辰离彬8 小时前
Java 与 MySQL 性能优化:Java应用中MySQL慢SQL诊断与优化实战
java·后端·sql·mysql·性能优化
GetcharZp9 小时前
彻底告别数据焦虑!这款开源神器 RustDesk,让你自建一个比向日葵、ToDesk 更安全的远程桌面
后端·rust
jack_yin10 小时前
Telegram DeepSeek Bot 管理平台 发布啦!
后端
小码编匠10 小时前
C# 上位机开发怎么学?给自动化工程师的建议
后端·c#·.net
库森学长10 小时前
面试官:发生OOM后,JVM还能运行吗?
jvm·后端·面试
转转技术团队10 小时前
二奢仓店的静默打印代理实现
java·后端