Koa的基础用法

5 篇文章 0 订阅
1 篇文章 0 订阅

话不多说 我们直入正题

什么是Koa?

Koa 是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web 应用和 API 开发领域中的一个更小、更富有表现力、更健壮的基石。 通过利用 async 函数,Koa 帮你丢弃回调函数,并有力地增强错误处理。 Koa 并没有捆绑任何中间件, 而是提供了一套优雅的方法,帮助您快速而愉快地编写服务端应用程序。

首先如何启动一个koa项目

1.创建一个新项目

2.npm init -y初始化package.json文件

npm init -y

3.通过终端或者命令用npm 或者yarn去安装koa、koa-router到dependencies

 npm install koa
 npm install koa-router

4.安转nodemon

npm add nodemon -D

5.添加一条npm scripts命令,"start":"nodemon app.js",npm run start即可启动服务

{
  "name": "koaa",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "nodemon app.js"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "koa": "^2.13.4",
    "koa-router": "^10.1.1"
  },
  "devDependencies": {
    "nodemon": "^2.0.15"
  }
}

一个Koa项目创建完毕~

接下来就开始上代码 

创建app.js

const Koa = require('koa');
const Router = require('koa-router');

//koa实例化
const app = new Koa();
const router = new Router();

router.get('/home',async ctx=>{
  ctx.body="hello World111";
})

app.use(router.routes()).use(router.allowedMethods());

app.listen(3000,()=>{
  console.log('服务启动了')
})

然后我们启动服务  

npm run start

这时项目已经启动了......

基础koa服务的目录结构

 

 拆分路由模块

  1. 创建一个router的文件夹
  2. 创建一个user.js

app.js

const Koa = require('koa');
const Router = require('koa-router');

const user = require('./router/user.js')

//koa实例化
const app = new Koa();
const router = new Router();
// 总路由添加前缀/api,总地址变为http://localhost:3000/api
router.prefix('/api')

router.get('/',async ctx=>{
  ctx.body="hello World111";
})


// 子路由添加前缀/users,最后访问地址变为http://localhost:3000/api/users/user
router.use('/users',user.routes());

app.use(router.routes()).use(router.allowedMethods());

app.listen(3000,()=>{
  console.log('服务启动了')
})

router/user.js

const router = require('koa-router')();
 
router.get('/user', (ctx) => {
  ctx.body = {name:'gaoxilong'};
})
 
router.get('/userlist', (ctx) => {
  ctx.body = [{name:'zhangsan'},{name:'lisi'}]
})
 
module.exports = router;

然后我们就可已在网页上

 就可以看到自己写的数据信息了

多个子路由模块加载,如何优化?

我把app.js跟/router/user.js重新整理了下

在router下新建index.js,是我们分装优化代码

router/index.js

const fs = require('fs');

module.exports = (app) => {
  fs.readdirSync(__dirname).forEach(file => {
    if (file === 'index.js') return false;
    const router = require(`./${file}`);
    router.prefix('/api')
    app.use(router.routes()).use(router.allowedMethods());
  })
}

router/user.js

const Router = require('koa-router');
const router = new Router({ prefix: '/users' });
router.get('/user', (ctx) => {
  ctx.body = {name:'gaoxilong'};
})
 
router.get('/userlist', (ctx) => {
  ctx.body = [{name:'zhangsan'},{name:'lisi'}]
})
 
module.exports = router;

app.js

const Koa = require('koa');
const Router = require('koa-router')
const routing = require('./router/index')
// 实例化
const app = new Koa();
const router = new Router();
router.get('/', async ctx => {
  ctx.body = 'hello world'
})
routing(app);
app.listen(3000, () => {
  console.log('你好,我正在监听3000的端口号')
})

然后我们在浏览器上输入端口依然是可以监听到的

关注博主后续更新MongoDB以及paostMan完成前后端请求数据的一些操作

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值