koa2.0富文本编辑器的选择历程

本人学习vue和koa2.0,作了一个简单的我的博客,博客天然会须要富文本编辑器的选择,因为nodejs和koa2.0,因而便开始了不断尝试的历程。php

1、ueditorvue

刚开始在百度搜索,天然第一个发现就是百度的ueditor,哇,功能好强大,虽然样式抽了些,因而便兴高采烈的学习百度的ueditor的使用,学者学者就发现一个事实,百度的uediotr不支持nodejs后台,因而果断放弃,从新开始了寻找历程,很快发现了koa-ueditornode

2、koa-ueditorgit

地址在这里:https://github.com/weivea/koa-ueditorgithub

  1. 上传图片按钮为灰色vue-router

  koa-ueditor是以百度的ueditor为基础,使其部分功能能够支持nodejs,并且是koa,因而按照其说明,作起了代码搬运工,一系列部署后,编辑器正常显示出来了,咦。。。,上传图片按钮是灰的,没法上传图片。。。,控制台一看发现一直报错,刚开始觉得是本身的用法不对,因而各类尝试,寻找室友帮助,结果仍是大败而归,当时彻底按照该例子的用法写的啊,可就是上传图片功能很差使=。=浏览器

  后来冷静下来后,开始研究在node_modules中的koa-ueditor模块,发现其中只有一个index.js,而后即是在百度ueditor中的文件夹中多了个nodejs文件夹,里面是一个配置文件,大概看了一眼index.js代码后,知道了其主要是起路由和上传文件的做用,若是请求(GET)的参数中的action是config的话,便重定向,返回nodejs文件夹下的配置文件,而后我在其中打印调试,发现该代码并无执行,因而得出结论,是该路由很差使,最后获得一个猜想,那就是该中间件使用的是koa1.0的generator函数,而我使用的是koa2.0,而koa2.0是用的async/await,因而把那个index.js文件函数改变为koa2.0的async和await后,若是好使了,上传图片按钮不是灰的了,哈哈,终于搞好了,我真是聪明。koa

  2. 上传图片按钮彩色,可是上传不上去async

  在尝试上传图片时,发现仍是上传不上去,只不过错误变成了请求失败。。。,因而以为可能仍是koa版本问题,因而开始研究图片上传代码,发现其中使用了co-busboy对multipart/form-data格式文件解析,而后使用fs的流操做对文件存储,而后返回浏览器对应的url,最后对co-busboy一系列调试打印,发现奈何不了他,因而尝试更换其余工具来对文件解析,还真发现了一个await-busboy,然而仍是并很差使,一天的各类尝试后,放弃了,最终决定放弃使用koa-ueditor,尝试使用小伙伴使用的vue-quill-editor,代码搬运后,发现没什么问题,并且界面好看,可是最后发现上传的图片时base64的,。。。,须要将base64本身进行处理,可是对这方面真是不太熟悉,因而有转向了以前的koa-ueditor,可是再也不使用该中间件,由于该中间件其实就是在另外一个php版本的uediotr上增长了一个nodejs路由,彻底能够本身实现啊。编辑器

3、改造ueditor

  1. 路由使用vue-router彻底ok,问题在于文件的解析和保存,解析后的结果须要是readStram才能存储,通过一些测试选择后,选择了busboy中间件https://github.com/mscdex/busboy,改造后,上传图片ok,可是上传单张图片的右边还有个图片管理,在图片管理中上传一张或者多张图片会报错,猜想多是请求和请求处理不搭配吧,而后想用koa-multer替代,可是使用koa-multer没法对config进行if判断,最后放弃,放弃了多张图片上传的功能。

4、学习与反思

过程这么艰辛,一小方面是由于koa2.0版本的问题,另外一大方面是本身对这方面的只是了解太少,不少东西都只是停留在使用层面,对应的理论原理只知其一;不知其二,之后要注意原理这方面的积累,所谓技术都是大同小异,具备类似点的。

 我的博客学习demo:https://github.com/My-Walker/my-blog

 

----------------------end

相关文章
相关标签/搜索