1053290
目录 · 4 个章节
问题
我想把下面的koa-router改造成require,module.exports形式
前端vue
<script>
export default {
data() {
return {
userAvator: "../../../static/avator.png",
userName: "",
userPhone: "",
userGender: "",
userType: ""
};
},
methods: {
getAvator(event) {
let avator = event.target.files[0];
if (avator.size > 100000) {
//不能大于100kb
return false;
}
console.log(avator);
let windowURL = window.URL;
this.userAvator = windowURL.createObjectURL(avator);
},
submit(event) {
if (
this.userName === "" ||
this.userPhone === "" ||
this.userGender === "" ||
this.userType === ""
) {
return false;
} else {
event.preventDefault();
let formData = new FormData();
let data = {
userName: this.userName,
userPhone: this.userPhone,
userGender: this.userGender,
userType: this.userType
};
data = JSON.stringify(data);
formData.append("avator", this.userAvator);
formData.append("data", data);
let config = {
headers: {
"Content-Type": "multipart/form-data"
}
};
axios
.post("http://localhost:3000/userInsertInto", formData, config)
.then(response => {
console.log(response);
})
.catch(error => {
console.log(error);
});
}
}
}
};
</script>
改造前
router.post('/userInsertInto', upload.single('file'), async(ctx, next) => {
//todo
})
改造后
router.post('/userInsertInto', controller.userInsertInto)
改造前,可以正常实现功能
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;
改造后的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
}
报错