节点。js使用洋槐搭建基础项目

  

高雅是由表达原班人马打造的超轻量服务端框架

  

与表达相比,除了自由度更高,可以自行引入中间件之外,更重要的是使用了ES6 +异步,从而避免了回调地狱

  

不过也是因为代码升级,所以Koa2需要v7.60以上的节点。js环境

  

一、创建项目

  

手动创建一个项目目录,然后快速生成一个,包。json文件

        npm init - y   之前      安装高雅,,//当前版本2.4.1         npm安装高雅- s   之前      然后创建一个app.js      //app.js      const高雅=要求(“高雅”);   const应用=new高雅();      app.use(异步ctx=比;{   ctx。身体=懊髦堑拇怼?   });      app.listen (3000);   之前      最后在包中。json中添加启动指令   

节点。js使用洋槐搭建基础项目

  

一个最基础的洋槐应用就这样完成了

  

节点。js使用洋槐搭建基础项目

  

可以执行npm开始并在浏览器访问http://localhost: 3000/查看效果

  

如果觉得手动创建项目太过繁琐,可以使用脚手架koa-generato来生成项目

        npm安装koa-generator - g   之前            koa2 project_name   之前      然后在项目下npm安装安装依赖,npm开始启动项目   

如果是刚接触高雅,建议先看完这篇博客,再使用脚手架工具,这样能更好的理解各个依赖包的作用

  

二,配置路由

  

上面app.js中有一个ctx,这是一个高雅提供的上下文对象,封装了请求和响应
  

  

每一次,HTTP请求都会创建一个上下文对象

  

我们可以通过Context.request。路径来获取用户请求的路径,然后通过Context.response。身体给用户发送内容

  

亚默认的返回类型是文本/平原,如果要返回一个html文件(或者一个模块文件),就需要修改Context.response。类型
  

  

另外,上下文。反应可以简写,比如Context.response。类型简写为Context.type Context.response。身体简写为Context.type

  

在项目下创建一个存放html文件的目录视图,并在该目录下创建一个索引。html,然后修改app.js

     ////原app.js生路由      const高雅=要求(“高雅”);   const fs=要求(fs);   const应用=new高雅();      接下来app.use(异步(ctx)=比;{   如果(ctx.request。路===/索引){   ctx。类型=皌ext/html”;   ctx。身体=fs.createReadStream(“。/视图/index . html”);   其他}{   等待下一个();   }   });      app.listen (3000);   之前      然后在浏览器中访问http://localhost: 3000/索引就能看到索引。html页面,而访问别的地址则是没有找到   

这样处理url显得特别笨拙,所以我们需要引入路由中间件koa-router

        npm安装koa-router - s   之前      需要注意的是,在导入koa-router的时候,需要在末尾加一个括号:         const路由器=要求(koa-router) ();   之前      相当于:         const koaRouter=要求(“koa-router”);   const路由器=koaRouter ();   之前      创建一个路线目录,用来存放路由文件,并在目录下创建index.js   

节点。js使用洋槐搭建基础项目

     //线路/index.js      const fs=要求(fs);   const路由器=要求(koa-router) ()      路由器。get(/索引,异步(ctx,)=比;{   ctx。类型=皌ext/html”;   ctx。身体=fs.createReadStream(“。/视图/index . html”);   });      模块。=出口路由器   之前      这里还可以使用前缀方法,为文件中的所有接口添加一个baseUrl   

//router.prefix ('/')

  

修改app.js      //app.js      const高雅=要求(“高雅”);   const应用=new高雅();      const指数=要求(“。/线路/指数”)   index.allowedMethods app.use (index.routes () ()      app.listen (3000);   

节点。js使用洋槐搭建基础项目