Koa项目搭建及路由模块化实践

Koa是一个自由而灵活的后端框架,非常适合个人的项目开发,在开发时,一般会用Koa-generator应用生成器生成一个初始化项目,这个应用生成器主要定义了一些文件夹,并且将路由实现了模块化,其实我们也可以自定义一个应用生成器,便于自行扩展。

1. 自定义文件夹

1. module文件夹;

主要用来存放项目开发中用到的一些公共模块。

2. statics文件夹;

主要用来存放项目开发中存放的静态文件,根据静态文件分类,又可以添加一些子文件夹,如images用于存放图片,css文件夹用于存放样式文件,js文件夹用于存放前端的一些交互。

3. views文件夹;

主要用来存放渲染的前端模板文件,根据项目需要,可以添加一些子文件夹,如public文件夹用于存放多个页面的公共头部和尾部。

2. 路由模块化

首先在app.js里引入预定义的模块化子路由,并将它与访问的路由地址对应绑定。

const Koa = require('koa');
const router = require('koa-router')();
const render = require('koa-art-template');
const path = require('path');
const app = new Koa();

render(app, {
    root: path.join(__dirname, 'view'),
    extname: '.html',
    debug: process.env.NODE_ENV !== 'production'
});

// 1.引入模块化的子路由
var admin = require('./routes/admin.js');
var api = require('./routes/api.js');

// 2.绑定路由
router.use('/admin', admin);
router.use('/api', api);


router.get('/', (ctx) => {
    ctx.body = "这是一个首页"
});

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

定义上面代码引入的子路由,以admin为例,由于amin代表的是一个后台管理系统的路由,所会存在很多的接口,所以可以再拆分一些子路由。

var router = require('koa-router')();

// 3.引入子路由
var user = require('./admin/user.js');
var focus = require('./admin/focus.js');


// 4.绑定子路由
router.use('/user', user);
router.use('/focus', focus);

router.get('/', (ctx) => {
    ctx.body = '这是后台管理系统首页';
});


module.exports = router.routes();

以下是admin子路由user的定义,包含增、删、改、查,其实所有的接口都是这些操作。

var router = require('koa-router')();

router.get('/', (ctx) => {
    ctx.body = '用户首页'
});

router.get('/add', (ctx) => {
    ctx.body = '用户增加'
});

router.get('/edit', (ctx) => {
    ctx.body = '编辑用户'
});

router.get('/delete', (ctx) => {
    ctx.body = '删除用户'
});

module.exports= router.routes();

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

aiguangyuan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值