公司要求使用Angular+Sequelize。趁着周末一波空闲,连续两天半夜才搞定。最简单的方法是从数据库表中取出几条数据,并显示为表格。坑,还有最后卡的坑。上来安装nodejs和angular,没问题,下载最新版安装一会,环境变量就搞定了。然后ngnew命令构建项目,启动VSCode,启动!写一个*ngFor循环输出一个表格,ts代码写一个对象数组(硬代码),显示表格没有问题。硬编码ngFor循环数组输出一个平板显示。至此,我信心满满。然后加上sequelize,这个带了个光环,哦不,githubstar最高的nodejsorm。为了排除数据库的各种配置问题,我首先尝试了sqlite这种内存数据库。那我创建一个Sequelize连接看看呢?然后我开始报告一堆乱七八糟的错误。一。第一个是编译错误:Can'tresolve什么鬼东西,谷歌和百度疯狂搜索,哦哦,原来各种东西都是浏览器的东西……嗯……怎么了解释是这些对象是浏览器内置的,不需要编译。(我是这样理解的,请补充)。编译报错,一头雾水怎么解决,就塞进package.jsonStack的东东吧。那就是告诉angular(其实是webpack),这些鬼东西都是浏览器内置的,别折腾!2.这次编译没问题吧?为什么浏览器里什么都没有?打开F12我看到错误:Buffernotdefined?这是什么疯狂的错误?好一个hello世界级的小网页,我哪里用的Buffer了。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。这段代码在做什么?幸运的是,原来的错误解决了。折腾了一天多才到这里...3.等不及了,ngserve,刷新页面,怎么还是空白?F12中的错误消息已更改。纳尼?我明明安装了sqlite3的lib,真是个姑娘。大家都知道,先npmuninstall/npminstall来回折腾。没有结果!然后求助谷歌百度,发现NN很多人遇到这种问题,并在sequelize的supportforum上提交了问题。每个帖子都是热议,没有简单优雅的解决方案。看了差不多两个小时报,试了npmrebuild无果,安装sqlites到全局,无果!其实这个问题的原因是sequelize的依赖跟webpack和angular的版本冲突了,反正没有打包。有人通过webpack的pkg解决了这个问题。我写了一堆代码,我不知道把它放在哪里。反正我还没解决。最后吐槽一下,angular的语法功能很好,但是它的依赖真的太多了……新建一个angular网站项目,全新的,居然有900多个依赖。900多!!!以前是做java的,maven从来没有超过100个依赖。最后,我想说,折腾了2天,我瞬间爱上了……哦不,我本来就没有爱过。
