mvc
mvc 即 model 、controller、view;mvc模式将model、view、controller分离;使⽤mvc分层是 系统更加灵活,扩展性更强。让程序更加直观、复⽤性更强、可维护性更强。
- model 负责数据访问;
- controller负责消息处理;
- view 负责视图呈现;
利⽤mvc模式规划项⽬
搭建服务器
1.引入
const Koa = require(“koa”);
const Router = require(“koa-router”);
const views = require(“koa-views”);
const static = require(“koa-static”);
2.实例化
let app = new Koa();
let router = new Router();
3.使用
app.use(static(__dirname+"/static"));
app.use(views(__dirname+"/views"));
//配置和数据库之间的连接
const connection = mysql.createConnection ({
host:‘localhost’,
user:‘root’,
password:“123321”,
database:“js01”,
charset:“utf8”
});
4.配置路由
router.get("/",ctx=>{
ctx.body=“hello”
});
//重进项
router.get("/",ctx=>{
ctx.redirect("/index");
});
5.端口号
app.use(router.routes());
app.listen(8888);
上传文件的步骤
- 1.在上传图片的地址后,添加格式enctype=“multipart/from-data”
- 2.下载并使用koa-body(允许上传文件)
- 3.service中保存数据
- 4.配置对应的路由
文件存储到数据库
把临时路径进行转存 (把图片下载下来,存到服务器上,mysql 里存的是路径
if(!fs.existsSync("static/uploads/")){ //检查是否有指定的目录
fs.mkdirSync("static/uploads/"); //如果没有,创建目录
}
// 参数1:文件名称
//参数2:文件中需要写入的内容
fs.writeFileSync("static/uploads/"+request.files.img.name,fs.readFileSync(request.files.img.path)); //写入文件
//上传文件后,将对应的数据也传递过去
let {title,content,addtime,country,type} = request.body;
let imgUrl = "/uploads/" + request.files.img.name;
let res = await connection.promise().query("INSERT INTO news (title,content,addtime,country,type,imgUrl) VALUES (?,?,?,?,?,?)",[title,content,addtime,country,type,imgUrl]);