node——koa基本使用

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;
//用户操作

猜你喜欢

转载自blog.csdn.net/YUHUI01/article/details/81662486