Koa基础用法

Koa是由express团队打造的新一代node框架,在express的基础上对一些用法做了一定的封装,两者在用法上比较类似,在koa中将req,res对象抽离融合成为了ctx上下文对象,有过express开发经验的同学上手应该很容易。

一、基础配置,挂载服务器实例

const koa = require('koa') //引入koa
const Router = require('koa-router')  //引入koa的router模块
const app = new koa() //创建服务器实例
const router = new Router() //创建路由实例
const path = require('path')
router.get('/', async (ctx) => {
  ctx.body = { msg: 2333 } 
})
app.use(router.routes()) // 挂载路由
app.listen(2333, () => { // 挂载应用
  console.log('success 2333')
})

如上即可实现一个基础的Koa node服务.

二、参数传递与处理

// get方法

router.get('/get/:name', async (ctx) => {
  console.log(ctx.params) // 接收params传参
  console.log(ctx.request.query)  // 接收query形式传参 

  ctx.body = { query:ctx.request.query, params:ctx.params } //将参数处理后返回
})

// post方法 post方法接收参数需要使用一个插件 koa-bodyparser

const bodyParser = require('koa-bodyparser') // 引入插件
app.use(bodyParser()) // 挂载插件

router.post('/post', async (ctx) => {
  console.log(ctx.request.body) //ctx.request.body 即可获取body传参

  ctx.body = ctx.request.body //将参数处理后返回
})

三、子路由挂载

在开发的时候一个router模块往往是不满足开发需求的,这个时候则需要挂载多个路由模块

  1. 新建一个子路由 router.js文件
const Router = require("koa-router");
const crouter = new Router();
// get方法
router.get('/get', async (ctx) => {
  ctx.status = 200
  ctx.body = '这是一个get方法'
})

// post方法

router.post('/post', async (ctx) => {
   ctx.status = 200
   ctx.body = '这是一个post方法'
})
// 抛出crouter模块的
module.exports = crouter;
  1. 在index.js中引入并挂载子路由
const crouter = require('./router/router.js') // 引入子路由

// 挂载子路由
router.use(crouter.routes())

// 挂载子路由,并指定路由入口
router.use('/api',crouter.routes()) // 在访问/api/xxx时才进入子路由

四、静态资源库配置

// 1. 按照依赖  npm install koa-static
// 2. 引入依赖  
const KoaStatic = require('koa-static');
// 3. 配置静态资源文件夹
app.use(koaStatic(path.join(__dirname, 'static')))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值