鍍金池/ 問答/Java  PHP  HTML/ 關(guān)于koa-router,module.exports導(dǎo)出fn,傳給的route

關(guān)于koa-router,module.exports導(dǎo)出fn,傳給的router.post('/url', fn)的疑問

實(shí)行一個(gè)圖片上傳和表單數(shù)據(jù)的提交,但是出了點(diǎn)問題

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
}

報(bào)錯(cuò)

clipboard.png

clipboard.png

回答
編輯回答
寫榮
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;
        })
}
2018年4月1日 22:44