ctrl+shift+f搜索必须限定文件范围,因全局搜易混入测试、mock、文档等非代码内容;应填src/*/.{ts,js}并关掉match whole word,json和swagger注解需同步检查。

Ctrl + Shift + F 是后端开发中全局搜索的绝对主力,不是“可选”,而是每天至少触发 20 次的基础操作。 它直接决定你查一个字段漏不漏、改一个路径全不全、定位一个中间件快不快——卡在这一步,后面逻辑再对也白搭。
搜索 req.body 字段变更时,为什么必须限定文件范围?
后端迭代常要改请求体字段,比如把 user_name 改成 username。但直接全局搜 user_name,结果里混着测试用例、mock 数据、数据库迁移脚本、甚至 README.md 里的示例 JSON,手动过滤极易遗漏。
- 在搜索面板的
files to include栏填src/**/*.{ts,js},排除非代码路径 - 若只改 API 层,进一步缩窄为
src/api/**/*.{ts,js} - 别依赖
Match Whole Word:JSON 字符串里"user_name": "xxx"不会被全词匹配命中,必须关掉该选项或加正则"user_name": - Swagger 注解(如
@ApiProperty({ example: "user_name" }))和 DTO 类型定义必须同步检查,否则 OpenAPI 文档和实际接口不一致
排查 401 或 403 时,怎么快速定位权限校验逻辑?
用户报错没权限,但你不确定是鉴权中间件没挂、还是路由守卫写错了、或是某个 service 方法绕过了检查——这时候不能靠猜,得用符号+上下文交叉验证。
- 先用
Ctrl + T搜关键词auth、guard、verify,看有哪些中间件或装饰器被定义 - 再用
Ctrl + Shift + F搜next()或return res.status(401),确认调用链是否中断 - 重点检查
app.use()和路由级.use()的顺序:Express 中间件注册顺序错一位,整个鉴权就失效 - 如果项目用了装饰器(如 NestJS 的
@UseGuards()),记得在files to include里加上**/*.controller.ts,避免漏掉控制器层守卫
升级 /api/v1/ 到 /api/v2/ 时,哪些地方容易漏?
路径前缀升级看着简单,但实际涉及路由定义、反向代理配置、前端 SDK 调用、甚至日志埋点字段——全局搜 /api/v1/ 必须带上下文判断,不能无脑替换。
- 先搜
router.get('/api/v1/、app.post('/api/v1/等完整模式,确保只改真实路由声明 - 检查 Nginx 或 Traefik 配置文件(如
nginx.conf或traefik.yaml),这些通常不在src/下,需手动加进files to include - 前端调用处(如
fetch('/api/v1/users'))和 SwaggerbasePath字段也要同步,否则 Postman 测试通、线上却 404 - 别忘了
package.json里的proxy配置或本地 devServer 重写规则,它们也会拦截并改写路径
真正卡住人的从来不是“找不到”,而是“以为找到了,其实漏了”。VSCode 全局搜索本身没智能,它的威力全靠你主动控制范围、理解上下文、并交叉验证不同线索——多按一次 Alt + Shift + F 右键搜文件夹,比花三分钟翻十个文件更可靠。











