• NodeJ Koa2 安装使用 reeber


    1. 介绍

      Koa 是由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web 框架。 使用 koa 编写 web 应用,通过组合不同的 generator,可以免除重复繁琐的回调函数嵌套, 并极大地提升错误处理的效率。
    koa 不在内核方法中绑定任何中间件, 它仅仅提供了一个轻量优雅的函数库,使得编写 Web 应用变得得心应手。(来自kao官网)
    基于async/await实现中间体系的koa2框架将会是是node.js web开发方向大势所趋的普及框架。基于generator/yield的koa1将会逐渐被koa2替代,毕竟使用co.js来处理generator是一种过渡的方式,虽然有其特定的应用场景,但是用async/await会更加优雅地实现同步写法。

    1. 安装

    • koa 依赖node V7.6.0及以上版本,
    • 首先确认node版本在7.6.0以上,版本低的请自行搞定。

    npm init // 初始化package.json

    npm i koa // 安装koa2

    1. 常用的引入模板

    2. 我们一般是不会这样直接返回的,实际开发中一般都是返回一个模版文件,我们可以先让koa读取这个文件,然后返回到用户界面。

      首先先创建一个views的目录,在里面新建一个template.html文件内容如下:

      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>hello koa2</title>
      </head>
      <body>
          <h1>Hello Koa2!</h1>
      
      </body>
      </html>
      Html前台页面
      将app.js中的内容修改为如下:

      const fs = require('fs');
      const Koa = require('koa');
      const app = new Koa();
      
      
      app.use(async (ctx) => {
          // ctx.body = 'hello koa2'
          ctx.type = 'html';
          ctx.body = fs.createReadStream('./views/template.html');
      });
      
      app.listen(1029);
      console.log('koa damo is starting at port 1029');
      JS Koa代码
    3. 基础结构语法

      1. const Koa = require('koa');
        const Router = require('koa-router');
        
        
        let server = new Koa();
        let router = new Router();
        
        server.listen(8080);
        
        router.get('/a', async ctx=>{
          ctx.body='aaaaa';
        });
        
        server.use(router.routes())
        View Code

        const Koa = require('koa');
        const Router = require('koa-router');
        
        
        let server = new Koa();
        let router = new Router();
        
        server.listen(8080);
        
        router.get('/a', async ctx=>{
          ctx.body='aaaaa';
        });
        
        server.use(router.routes())Koa基础结
    1. 有哪些 属性?

      1.   ctx.method  请求方法
      2.   ctx.url    
      3.   ctx.path
      4.   ctx.query        ?user=Haisen&id=1
      5.   ctx.params       数据参数
      6.        ctx.ip           客户端IP

    2. 多层路由的分层写法

      1.   一级路由
        一层选择 主路由   server.use(router.routes());
      2. 二层路由

           二层路由   1.引入路由对象   2.创建路由   3.配置路由  4.对外使用

    • const Koa = require('koa'); const Router = require('koa-router'); let server = new Koa(); server.listen(8080); let router = new Router(); router.get('/',async ctx=>{ ctx.body = '根目录' }); router.use('/home',require('./routes/home')); // router.use('/admin',require('./routes/admin')); server.use(router.routes())
    Koa2一层路由
    const Router = require('koa-router');
    
    // 嵌套二级
    let home = new Router();
    
      home.get('/',ctx=>{
        ctx.body ='前端';
      });
      home.get('/login', async ctx=>{
        ctx.body='login';
      });
      home.get('/sigin', async ctx=>{
        ctx.body='sigin';
      });
    
    
    module.exports=home.routes();
    Koa2二层路由
  • 相关阅读:
    MySql性能调优三(explain/desc执行计划)
    MySql性能调优二(BTree、B+Tree与索引数据结构)
    MySql性能调优一(存储引擎InnoDB,MyISAM)
    PHP 数组底层实现原理
    哈希算法及其应用场景
    散列表、散列函数和散列冲突
    PHP中的XML解析的5种方法
    特殊的线性表:递归
    Navicat12破解教程(Navicat_Keygen_Patch_By_DFoX V5.6)
    svn服务端安装、迁移教程、Eclipse切换svn连接库
  • 原文地址:https://www.cnblogs.com/reeber/p/10720783.html
Copyright © 2020-2023  润新知