高雅是由表达原班人马打造的超轻量服务端框架
与表达相比,除了自由度更高,可以自行引入中间件之外,更重要的是使用了ES6 +异步,从而避免了回调地狱
不过也是因为代码升级,所以Koa2需要v7.60以上的节点。js环境
一、创建项目
手动创建一个项目目录,然后快速生成一个,包。json文件
npm init - y >之前 安装高雅,,//当前版本2.4.1npm安装高雅- s >之前 然后创建一个app.js//app.js const高雅=要求(“高雅”); const应用=new高雅(); app.use(异步ctx=比;{ ctx。身体=懊髦堑拇怼? }); app.listen (3000); >之前 最后在包中。json中添加启动指令
![]()
一个最基础的洋槐应用就这样完成了
![]()
可以执行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
//线路/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使用洋槐搭建基础项目