一个egg项目,前端content-Type 为multipart/form-data,其中参数带有token验证,还有传的文件,要在middleware中验证token正确性,再在controller中处理请求。
遇到的问题如下:
使用formidable获取参数,在form.parse中能获取到token以及文件,但是还没等form.parse触发,middle就直接往下执行了,最后egg没有任何返回。
主要代码如下:
// middle const formidable = require('formidable'); let flag = false; let fieldsParams; const form = new formidable.IncomingForm(); form.parse(ctx.req, async function(err, fields) { if (err) { throw err; } flag = true; fieldsParams = fields; }); const timer = await setInterval(async () => { if (flag) { token = fieldsParams.token; const result = await Fun(); if (result.code !== 200) { ctx.body = { errmsg: 'token验证错误', errno: 1, }; } else { await next(); } clearTimeout(timer); } }, 500);
本来是直接写的,不行,完了搞成这副德行,我也很郁闷,还望大神不吝赐教。拜托了 ~ 🙏
不好意思,代码不知道怎么换行 , 头大