毕设系统遇到的问题
使用vue3+element-plus+node+mysql
本来想用element-ui,但是vue3不能和element-ui一起使用,那就用element-plus
1、最开始用sass,但是出现了问题,具体原因是vue源码报错currentRenderingInstance.isCE is undefined,困扰了好久,但换成less就没问题了
版本如下:
"less": "^4.1.2",
"less-loader": "^7.3.0",
2、有关正则表达式匹配 '\' 字符串的问题 :解决方法-------结合实际
3、上传图片到数据库的问题
最开始在百度上搜索一般前端怎么把图片存储到数据库,找到的答案是将图片文件转化为blob类型传递给后端,数据库表中将此字段设置为blob类型,然后后端将数据储存进表中;
结果实际执行起来发现
将blob文件传递给后端时需要将axios的Content-Type设置为multipart/form-data
然后遇见了body-parser无法解析form-data数据的问题,
同时发现
app.use(express.json());
app.use(express.urlencoded({extended:false}));
// 可以取代
以及可以使用multiparty解析form-data数据
同时文件可以存储在指定文件夹下,官网:https://github.com/pillarjs/multiparty
基本用法:
//生成multiparty对象,并配置上传目标路径
let form = new multiparty.Form({ uploadDir: "./public/images" });
form.parse(req, (err, fields, files) => {
//fields 基本数据类型对象 files 文件对象
})
可以通过files里的对象获取到图片相对路径,然后将路径使用 localhost:+端口号+图片相对路径 进行拼接,以字符串的形式存储在数据库表中的字段中,
最后将文件目录使用
app.use(express.static(path.join(__dirname,'../'))); //设置静态资源
将文件设置为静态资源,这样前端就能通过路径访问到相应图片了(๑• . •๑)。
4、希望通过路由传递一个对象给另一个页面,但是传递后发现获取到的结果打印出来是 [object object]
搜索了下发现可以通过使用以下方法传递对象:
//将对象转换为字符串
let detail=JSON.stringify(obj);
//对字符串进行编码 detail=encodeURIComponent(detail); router.push({path:'/comm/account',query:{detail}})
//获取参数
不使用 encodeURIComponent() 和 decodeURIComponent() 好像会出现问题,没有亲测;
总算写完毕设了 ^ _ ^
^ _ ^ ^ _ ^
^ _ ^ ^ _ ^
^ _ ^ ^ _ ^ ^ _ ^ ^ _ ^ ^ _ ^ ^ _ ^
^ _ ^ ^ _ ^
^ _ ^ ^ _ ^
^ _ ^ ^ _ ^ ^ _ ^
^ _ ^ ^ _ ^ ^ _ ^ ^ _ ^
^ _ ^ ^ _ ^

浙公网安备 33010602011771号