zoukankan      html  css  js  c++  java
  • 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
    }
  • 相关阅读:
    PAT 1010. 一元多项式求导 (25)
    PAT 1009. 说反话 (20) JAVA
    PAT 1009. 说反话 (20)
    PAT 1007. 素数对猜想 (20)
    POJ 2752 Seek the Name, Seek the Fame KMP
    POJ 2406 Power Strings KMP
    ZOJ3811 Untrusted Patrol
    Codeforces Round #265 (Div. 2) 题解
    Topcoder SRM632 DIV2 解题报告
    Topcoder SRM631 DIV2 解题报告
  • 原文地址:https://www.cnblogs.com/zhaozhipeng/p/8080827.html
Copyright © 2011-2022 走看看