• koa2


    let Koa = require('koa');
    let router = require('koa-router')();
    let bodyParser = require('koa-bodyparser');
    let app = new Koa();
    
    // 异步函数
    app.use(async (ctx, next) => {
        console.log(`${ctx.request.method}~~~~${ctx.request.url}`);
        await next();
    });
    app.use(async (ctx, next) => {
        let start = new Date().getTime();
        await next();
        const ms = new Date().getTime() - start; // 耗费时间
        console.log(`Time: ${ms}ms`); // 打印耗费时间
    });
    app.use(async (ctx, next) => {
        await next();
        ctx.response.type = 'text/html';
        ctx.response.body = '<h1>Hello wrod!!!</h1>'
    });
    // 接口请求(办法愚蠢)
    app.use(async (ctx, next) => {
        if (ctx.request.path === '/') {
            ctx.response.type = 'text/html'
            ctx.response.body = 'index page !!!!!!!!!'
        } else {
            await next();
        }
    });
    app.use(async (ctx, next) => {
        if (ctx.request.path === '/list') {
            ctx.response.type = 'text/html'
            ctx.response.body = '<ul><li>1</li><li>2</li><li>3</li></ul>'
        } else {
            await next();
        }
    });
    app.use(async (ctx, next) => {
        if (ctx.request.path === '/error') {
            ctx.response.type = 'text/html'
            ctx.response.body = 'notfund 404 哥们你找错人了吧'
        } else {
            await next();
        }
    });
    // 接口请求 (路由)router
    app.use(async (ctx, next) => {
        console.log(`Process ${ctx.request.method} ${ctx.request.url}...`);
        await next();
    });
    router.get('/', async (ctx, next) => {
        ctx.response.body = '<h1>Index</h1>';
    });
    router.get('/hello/:name', async (ctx, next) => {
        var name = ctx.params.name;
        ctx.response.body = `<h1>Hello, ${name}!</h1>`
    });
    // 模拟登陆接口
    // bodyParser 解析post数据
    app.use(bodyParser());
    router.get('/', async (ctx, next) => {
        ctx.response.body = `<h1>Index</h1>
    <form action="/signin" method="post">
    <p>Name: <input name="name" value="koa"></p>
    <p>Password: <input name="password" type="password"></p>
    <p><input type="submit" value="Submit"></p>
    </form>`;
    });
    router.post('/signin', async (ctx, next) => {
        var name = ctx.request.body.name || '',
            password = ctx.request.body.password || '';
        console.log(`signin with name: ${name}, password: ${password}`);
        if (name === 'koa' && password === '12345') {
            ctx.response.body = `<h1>Welcome, ${name}!</h1>`;
        } else {
            ctx.response.body = `<h1>Login failed!</h1>
    <p><a href="/">Try again</a></p>`;
        }
    });
    app.use(router.routes());
    app.listen(9696);
    console.log('app started at port 3000...')
    

      

  • 相关阅读:
    20年的Flash要退出舞台:当年哪个小游戏你最爱?
    一些实用但不为人知的Unix命令
    20145221 《Java程序设计》第九周学习总结
    20145221 《Java程序设计》实验报告四:Android开发基础
    20145221 《Java程序设计》实验报告三:敏捷开发与XP实践
    20145221 《Java程序设计》第八周学习总结
    Java实现:数据结构之排序
    20145221 《Java程序设计》第七周学习总结
    20145221 《Java程序设计》实验报告二:Java面向对象程序设计
    网络安全攻防学习平台
  • 原文地址:https://www.cnblogs.com/dekui/p/10445788.html
Copyright © 2020-2023  润新知