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

2020-11-26 14:53:15 浏览数 (1)

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

1.自定义文件夹

(1).module文件夹。主要用来存放项目开发中用到的一些公共模块。

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

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

2.路由模块化

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

代码语言:javascript复制
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代表的是一个后台管理系统的路由,所会存在很多的接口,所以可以再拆分一些子路由。

代码语言:javascript复制
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的定义,包含增、删、改、查,其实所有的接口都是这些操作。

代码语言:javascript复制
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();
koa

0 人点赞