veaba / express-nuxt

【开发中……,需要配置mongodb才能使用本项目】Vue.js + express +nuxt.js +node.js + mongodb +websocket,web服务研究站。额外增加了小说爬虫功能(个人喜好)、vue官方样式markdown渲染。(github.io是静态页面,无法使用login等后台服务,后续再换成websocket或者jsonp与后台交互,然而看了GitHub.io 22s才加载完资源,凉凉)
https://veaba.github.io/express-nuxt/
MIT License
15 stars 2 forks source link

【Official】:小说下载功能完成开发 #19

Open veaba opened 5 years ago

veaba commented 5 years ago

【总结】:

  1. 从萌生到现在,历时N久,改了十几个demo版本,看了看novel文件创建的时间竟然是在2018/4/20,那是做web前端之后的第一次离职当天。
  2. 基础和逻辑推理还有思考的方向,个人不得不服气,还有很多很多的不足,光一个排版问题,因为全角/半角的空格就搞了好几个小时
  3. 盲目在未知的领域频繁的测试、变更方案来得到预期的结果,然而,往往导致效率很低,浪费大量的时间;碰到不太确定的问题,几乎是使劲的怼出来,往往一些卡住的地方还是通过透透气和吃饭走路的过程中想到的,我觉得,这个问题很重要。期望能够去克服这样的一个缺点。
  4. 对于预期的基础设计,大局观还是不足。之前以为想写入到mongodb,于是因为再从数据库中拉取数据并和起点对比的这一个步骤,耗费查询时间过长的原因,几乎推翻所有的设计,而且现在这个下载逻辑还是只是推翻设计中的一个临时想到的小附加功能
  5. 这个功能是私人用,有些不太友好,目的上,有些违法商业的兴致,项目可以学习,并不打算公开给别人滥用。

【截图】: beike io - https___www admingod com_novel

【分析】:

  1. node 使用superAgent 作为代理去抓取页面数据
  2. 通过搭建Websocket服务(server 端使用socket.io搭建 websocket服务),将章节数据发送到客户端
  3. 前端使用socket.io-client 作为接收方,接受后端传递过来的数据
  4. 使用Blob 对象,将组装成为字符串的数据,生成blob实例
  5. 使用window.URL.createObjectURL 生成blob url,拼装成为下载地址即可

【注意】:

【反馈】:

  1. 微博@叶箫大人
  2. 在本项目发起issues
  3. 2018年9月14日21:57:14 正式发布功能代码