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
}