A14:「自学经验」回顾

一、状况;缘起

在整个学期总共遇到两三次发生大BUG解到天亮的情况,以下一一叙述......

情况一:在 A1 作业打造餐厅清单,缴交的栏位必须上传 github 网址,然而我一直无法把本地端的东西推上 github情况二:在 week2 使用 mongoDB 和 mongoose 的时候连接也遇到大问题,那阵子最害怕看到这个 error:
MongooseError: The `uri` parameter to `openUri()` must be a string......

甚至还去察看了node_module

情况三:在 A7 作业中,路由器疯狂出错,读不到 new.handlebars 页面,终端机回传:MongooseError [CastError]: Cast to ObjectId failed for value "new" at path "_id" for model "Restaurant".....

二、第一次出手与失败

情况一:后来才发现问题出在我之前有一次懒得重新推,所以直接在github上做修改,结果就造成远端和本地端冲突,然后又不知道按到什么键,整个档案回复到最开始 git commit 的版本,只好摸摸鼻子重新写(此时的我已经对git充满敬畏,不敢再乱做其他操作)情况二:查阅了 stackoverflow 然而完全没用,对着 error 崩溃情况三:一一比对了教案试图釐清问题出在哪,我有哪一点没跟教案一样?但一样未果。

三、定义问题

情况一:对 git 太不熟悉了,所以这也是我后来开始写 git 版控流程问题笔记的缘起之一。 git 实在慑人心魄。情况二:绝对是 mongoose 的问题(毕竟报错都自己写了),但此时我也才刚接触 mongoose,就算知道问题在 mongoose,也只能迷失在茫茫文法海中,只能推测是资料库网址问题情况三:觉得是 mongoose 的问题,但「value "new" at path "id"」又让我觉得应该跟 new.handlebars 这个页面有关

四、寻找与尝试

三个问题都先找了 google 和 stackoverflow,再来一一跟教案进行相比有哪里不同的地方。

五、掌握关键,拨云见月

情况一:因为我后来直接重新写了,然后也发现如果本地端跟远端版本不同的话一定要先 git pull 把远端的东西抓下来更新!main 主支才不会疯狂冲突!
这时我也学乖了,在重新 git 的过程中我用 google sheet 写了流程笔记,避免未来的自己再忘记:Git 版控流程情况二:情况很蠢,反覆比对教案多次之后,我瞇起眼睛,终于发现 mongoDB_URI 最后一个字母好像是「I」(i) 而不是「l」(L) 所以我完全打错,难怪会报错
这次之后也因为资料库的执行过程实在太多小细节,所以也在 git 版控流程的旁边写上建立新专案的步骤,方便自己查阅而且不会忘记。启动新专案流程情况三:这个问题是唯一我卡到没有自己解决了,后来问了助教才知道是路由器摆放顺序问题,只要把 new 页面的router 移到 show 页面的 router 上方就可以了。

六、回顾与发现

我觉得重点在于细心,以及搞清楚变数和路由器传入的顺序和步骤,这些东西在脑中清楚理顺过,代码才不会一直报错。

七、分享与展望

唯一推荐 chatGPT,到后期太多问题是 stackoverflow 无法解决的了,所以后来我都直接问 GPT,如果 GPT 也无法解决才会问助教。
mongoose 的语法官方文件也要看过,很多语法用法写在里面!


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章