koa2的安装和配置修改以及aysnc/await语法

                                           koa2的安装和配置修改以及aysnc/await语法

  koa2也是处理服务器端的一个框架,但是在koa2中其路由并没有和express一样将路由整合在中间件当中,两者是分离开的。另外对于koa2中的一大特色就是koa中并没有req与res,在koa2中是将这两部分整合在一起为ctx,这样做可能是为了给不熟悉res,res的人说比较友好。另外在koa2中其是支持aysnc/await语法,有关函数的处理都是使用这种异步请求的方式。koa2是基于aysnc/await开发的一种框架,在node8.0以上才支持aysnc/await语法。因此接下来就来介绍aysnc/await语法

  aysnc/await语法及其使用形式

 在这里通过文件流的处理对aysnc/await语法进行说明,再来回顾下文件流的相关信息,首先需要fs和path,然后创建getFileContent函数给其参数值传入文件名,最后在其内部创建以过Promise对象,然后再通过path.resolve()去获取到文件的路径,最后通过fs.readFile(通过path获取到的文件名,(err,data)=>{}),输出结果,并且返回这个promise对象即可。封装的方法如下:

const fs = require('fs'); const path = require('path');
function  getFileContent(filename){
   const promise = new Promise((resolve, reject) => {
   const getFullFilename = path.resolve(__dirname,'files', fillename);
   fs.readFile(getFullFilename ,(err , data) => {
       if(err){
          console.error(err);  
       }
       resolve(
          JSON.stringify(data) 
        )
 })
})
  return promise;
}
当调用这个方法时,使用aysnc/await语法来完成整个过程的异步调用。具体的调用方式如下:

下面部分的代码有关于aysnc await语法部分,下面的这种获取方式是使用了一个同步的写法
// async await语法  与promise套用
async function readFileData() {
    // 返回的是一个Promise对象
    //同步写法
    try {
        const aData = await getFileContent('a.json');
        console.log('a data ', aData);
        const bData = await getFileContent('b.json');
        console.log('b data ', bData);
        const cData = await getFileContent('c.json');
        console.log('c data ', cData);
    }catch(err){
        console.error(err);
    }
}
readFileData();

下面的这种获取方式是使用异步的写法
//异步写法
 async function readAData(){
     const aData = await getFileContent('a.json');
     return aData;
 }

 async function test(){
    const Data = await readAData();
    console.log('a data ', Data );
}
test();

对于aysnc/await语法,需要明白的就是以下的四点:

 1. await 后面可以追加 promise 对象, 获取resolve的值
 2. await 必须包裹在aysnc函数当中
 3. async 函数执行后返回的结果也是一个 promise 对象
 4. try catch 可以捕捉到reject中的信息
koa2安装与配置文件的更改

 1. 使用npm install koa-generator   2. koa2 koa2_blog      3.转到koa2_blog目录 cd koa2_blog     4. npm install 安装脚手架自带的依赖包 

配置更改: 使用cross-env 与nodemon去检测环境的更改
            在dev中添加cross-env NODE_DEV=dev 添加后dev中的配置如下:
            "dev": "cross-env NODE_ENV=dev ./node_modules/.bin/nodemon bin/www"
            同理添加cross-env NODE_DEV=production ,添加后prd中的配置如下:
            "prd": "cross-env NODE_ENV=production pm2 start bin/www"

koa2中配置文件的介绍:

  介绍app.js文件夹中的各个插件
      1. views = require('koa-views')监听视图层中的信息   
      2. json = require('koa-json')  有关于json数据的处理
      3. onerror = require('koa-onerroe')  对于error中错误信息的处理
      4. bodyparser = require('koa-bodyparser') 对于body部分的参数处理
      5. logger = require('koa-logger')   日志部分相关信息处理

猜你喜欢

转载自blog.csdn.net/care_yourself/article/details/101421075