const Koa= require("koa");
const app = new Koa();
const router = require('koa-router')();
const userRoute = require('./routes/userRoute.js');
const sysRoute = require('./routes/systemRoute.js')
router.get("/", async(ctx,next) => {
ctx.response.body = "<h1>默认方位首页</h1>";
})
router.get("/user", async(ctx,next) => {
ctx.response.body = "<h1>访问用户也</h1>";
})
router.get("/system", async(ctx,next) => {
ctx.response.body = "<h1>系统界面</h1>";
})
//使用koa对象的中间件 引入路由功能
app.use(router.routes());
app.use(userRoute.routes());
app.use(sysRoute.routes());
//use中间件在处理程序时 会出现异步
//所以使用async保持同步效率
app.use(async (ctx,next)=> {
//异步代码写上面
await next(); //执行完当前中间件 执行下一个中间件
//下面编写其他逻辑
})
//koa 也提供了use中间件 可以对程序进行处理
//context对象 用来表述一次通话访问的上下文
//context对象作为上下文 包含了两个对象 request response
//request对象 与express框架的request对象基本类似
//使用request.path 获取路径
app.use((context)=> {
let {request:req,response:res} = context;
var u = req.path;
if(u=="/") {
res.body = "<div>我是首页信息</div>";
return;
} else{
res.body = "<h1>用户信息页面</h1>";
return;
}
console.info(req.query,"打印变量")
console.info(req.path,"打印路径")
//可以返回html页面
context.response.body = "<div>你好,访问成功</div>";
})
app.listen(3000);
console.info("运行程序成功");
systemRoute.js文件
const router = require('koa-router')();
router.get("/system", async(ctx,next) => {
ctx.response.body = "<h1>系统界面</h1>";
})
module.exports = router;
//系统设置
userRoute.js
const router = require('koa-router')();
router.get("/user", async(ctx,next) => {
ctx.response.body = "<h1>访问用户也</h1>";
})
router.get("/user/list", async(ctx,next) => {
//mongodb查询
ctx.response.body = [{name:"张三"},{name:'李四'}];
})
router.post("/user/add", async(ctx,next) => {
ctx.response.body = "<h1>增加用户信息</h1>";
})
module.exports = router;
//用户操作