今天在做项目的时候,又一次被一个小习惯提醒——随手保存文件的重要性

我把原本用 Flask 写的后端改成 Node.js + Sequelize,手动新增了多个模型文件。修改完代码后,运行 node server.js 却报了一个莫名其妙的错误:

TypeError: require(...) is not a function
at Object.<anonymous> (.../models/index.js:26:42)

当时我一度以为是函数写错了,尝试了各种改写和引入方式,但问题依旧。

因为用的cursor编译器,我就在AI Agent上面请它为我排除问题在哪里,它列出来可能导致的原因,其中

“模型文件是否都在磁盘上?在 backend\models 下搜索时,只看到了 index.js 和 user.js,缺少 userSession.js、timeAccount.js、serviceOrder.js、timeTransaction.js。”

这段文字提醒了我,报错的根本原因也行不是代码写错,而是文件没有真正保存到磁盘。

我立即在各个新建文件按下 Ctrl+S,把所有文件都保存好,再次启动后端——一切正常。这让我大悟,有的时候并不是函数的问题,而是保没保存。这不禁引发我的思考

如果没有 Cursor,该如何排查?

我试着整理了一下,即便没有 Cursor,可以从以下几个角度思考问题:

  1. 确认文件是否存在
  2. 检查 require 路径
  3. 打印调试信息
  • 在 PowerShell 中列出目录:
dir E:\user\用户目录\time-bank\backend\models

  • Node.js 的 require('./userSession') 会找 userSession.jsuserSession/index.js,路径大小写必须正确,否则会报错。
  • console.log('Files in models:', require('fs').readdirSync(__dirname));

可以看到 Node.js 实际找到的文件列表,如果缺少某个文件就说明它没保存或者路径有问题。

防止下次出现类似问题

  • VSCode 自动保存

菜单:File → Auto Save

  • 配合 nodemon
npm install -g nodemon
nodemon server.js

nodemon 会监控文件修改,自动重启服务。结合自动保存,实现“改 → 保存 → 自动重启 → 看到效果”的闭环。

这个小插曲让我深刻意识到两个点:

  1. 一键保存是最重要的开发习惯,可以避免很多莫名其妙的报错。

  2. 智能辅助工具(如 Cursor)非常有用,能快速定位问题,但即便没有,也能通过目录检查、调试打印等方法排查问题。

有时候,报错背后隐藏的不是代码问题,而是一个看似微不足道的小习惯。Ctrl+S + 智能提示,让调试效率提升不止一点点。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐