koa搭建简单服务

koa搭建服务

简介

主要使用koa框架搭建、koa-router作为路由、koa-static作为静态资源(没有数据库)。

安装依赖配置

package.json文件里写入

"dependencies": {
    "koa": "^2.3.0",
    "koa-router": "^7.2.1",
    "koa-static": "^4.0.1"
}

然后执行以下命令安装即可

npm install

项目文件目录

如图,action文件夹是负责对所匹配到的路由进行事件处理;node_modules文件夹是依赖文件夹;router则是路由文件夹,负责对接口匹配路由;app.js是项目的启动文件负责中间件的加载和服务器的启动;package.json文件是项目的描述配置文件。

文件代码详解

项目根目录的app.js

var koa = require('koa')
var koaRouter=require('koa-router')
var staticServer=require('koa-static')
var path=require('path')
var route=require('./router/router.js')  //路由匹配文件

var app=new koa()  //实例化一个koa
var router=new koaRouter()  //实例化一个koaRouter
router=route.route(router)  //对router添加所有的匹配对象
app.use(router.routes())  //加载router中间件
app.use(staticServer(path.join(__dirname,'../web')))  //设置静态文件(可直接在浏览器中访问,如图片)
app.listen(3005)  //启动一个监听端口3005的服务器

router文件夹的路由文件router.js

var handle=require('../action/action.js')  //路由处理文件
var action=handle.action
function route(router){  //这里的参数router是接收自app.js文件里面的koa-router实例
    router.all('/',async (ctx,next)=>{  //可以匹配所有的请求路由,ctx是koa中的上下文,包含request和response等所有信息(以封装)
        action.init(ctx,next)
    })
    return router  //return经过处理的router实例
}
module.exports={
    route:route
}

action文件夹的事件处理action.js

var action={
    async init(ctx,next){
        ctx.body='hello,world'  //响应请求
    }
}
module.exports={
    action:action
}
原文地址:https://www.cnblogs.com/zhaozhipeng/p/8080827.html