前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Koa项目搭建及路由模块化实践

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

作者头像
越陌度阡
发布2020-11-26 14:53:15
9340
发布2020-11-26 14:53:15
举报

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();
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/09/19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.自定义文件夹
  • 2.路由模块化
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档