用 koa-multer 这模块,上传是可以成功了,但是成功之后的回调都没有执行~~~求大佬搭救一把

naice
  • 2k

这是代码

const Koa = require('koa');
const route = require('koa-route');
const multer = require('koa-multer');
const serve = require('koa-static');
 
const app = new Koa();

app.use(serve(__dirname + '/koa-upload/'));

const upload = multer({ dest: 'uploads/' });

 
app.use(route.post('/profile', upload.single('avatar'), async function(ctx) {
        console.log(123)
}));
 
app.listen(3000);

console.log('listening on port 3000');

图片是可以上传到uploads文件夹里面,可是console.log(123)这句话就没没有执行,后面就没有办法拿到文件信息了呀

求大佬搭救一把

回复
阅读 5.3k
4 个回答

可以用官网提供的koa-better-body,可以解析form,具体用法: 在app.js 中使用中间件后。,使用koa-router可直接用,前端提交的内容可通过ctx.request.body.fields 得到,也可在app.js指定为ctx.request.body

// app.js
const koaBetterBody = require('koa-better-body')
    app.use(koaBetterBody({
      fields: 'body'
 }))

// router.js
router.post('/profile',async(ctx)=> {
const data = ctx.request.body
})

参考路径: https://github.com/tunnckoCor...

题主粗心大意了呀 没写return next()..

我想问下,如何访问上传到服务器的图片呢

const route = require('koa-route');
这个地方,引用:

const Router = require('koa-router');
const router = new Router();

另外在使用route的时候需要注意:

app.use(router.routes())

.use(router.allowedMethods())

这样就OK了!

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏