egg formdata格式请求 ,在middle中验证token正确性返回404
发布于 6 年前 作者 Helovebai 2389 次浏览 来自 问答

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

回到顶部