关于koa-router,module.exports导出fn,传给的router.post('/url', fn)的疑问

实行一个图片上传和表单数据的提交,但是出了点问题

clipboard.png

可行模式

const router = require('koa-router')();
const controller = require('../controller/user');
const multer = require('koa-multer');

var storage = multer.diskStorage({
        //文件保存路径  
        destination: function(req, file, cb) {
            cb(null, 'static/images/')
        },
        //修改文件名称  
        filename: function(req, file, cb) {
            var fileFormat = (file.originalname).split(".");
            cb(null, Date.now() + "." + fileFormat[fileFormat.length - 1]);
        }
    })
    //加载配置  
var upload = multer({ storage: storage });

router.post('/userInsertInto', upload.single('file'), async(ctx, next) => {
    console.log(ctx.req.body)
    let data = JSON.parse(ctx.req.body.data);
    console.log(data);
    ctx.body = {
        msg: "aa"
    }
})

module.exports = router;

clipboard.png

require,module.exports 模式

require

const router = require('koa-router')();
const controller = require('../controller/user');

router.post('/userInsertInto', controller.userInsertInto)


module.exports = router;

module.exports

const router = require('koa-router')();
const userModel = require('../mysql/mysql');
const multer = require('koa-multer');

var storage = multer.diskStorage({
        //文件保存路径  
        destination: function(req, file, cb) {
            cb(null, 'static/images/')
        },
        //修改文件名称  
        filename: function(req, file, cb) {
            var fileFormat = (file.originalname).split(".");
            cb(null, Date.now() + "." + fileFormat[fileFormat.length - 1]);
        }
    })
    //加载配置  
var upload = multer({ storage: storage });

const userInsertInto = async (ctx) => {
    await upload.single('file');
    console.log(ctx.req.body)
    let data = JSON.parse(ctx.req.body.data);
    ctx.body = {
        msg: "aa"
    }
}

module.exports = {
    userInsertInto: userInsertInto
}

报错

clipboard.png

clipboard.png

阅读 2.1k
1 个回答
const userInsertInto = async(ctx, next) => {
    var storage = multer.diskStorage({
            //文件保存路径  
            destination: function(req, file, cb) {
                cb(null, 'static/images/')
            },
            //修改文件名称  
            filename: function(req, file, cb) {
                var fileFormat = (file.originalname).split(".");
                cb(null, Date.now() + "." + fileFormat[fileFormat.length - 1]);
            }
        })
        //加载配置  
    var upload = multer({ storage: storage }).single('file');
    await upload(ctx)
        .then(result => {
            console.log(ctx.req.body);
            console.log(ctx.req.file);
            ctx.body = {
                data: ctx.req.file
            }
        })
        .catch(error => {
            console.log(error)
            ctx.body = false;
        })
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题