koa2 - 项目构建 - [router路由,swig模板,转换, 资源管理 ]
2018-04-07 19:17
721 查看
koa1与koa2的区别:
koa1 是 Generator 友好型,
koa2 是 Async/Await 友好型;
- 新建项目及项目初始化
- 安装koa2 依赖 npm install koa –save ; 我是koa@2.5.0的版本; node@8.9.0的版本;
koa1转koa2 的转换器 npm install koa-convert –save
usage:
静态文件中间件 > npm install koa-static –save
usage:
文件模板 >
模板引擎 [npm install koa-swig –save] (https://www.npmjs.com/package/koa-swig)
同时依赖 co 合成器 npm install co –save
usage:
至于大型项目架构, 请看我的
koa1 是 Generator 友好型,
koa2 是 Async/Await 友好型;
准备工作
koa2 项目是比较轻量级的; 会有很多库引入,比较繁杂;- 新建项目及项目初始化
- 安装koa2 依赖 npm install koa –save ; 我是koa@2.5.0的版本; node@8.9.0的版本;
新建/app.js const Koa = require('koa'); const app = new Koa(); app.use(async ctx => { ctx.body = 'Hello World'; }); app.listen(3000,()=>{ console.log("sever started") }); //建立简单服务, localhost:3000
开始完善项目架构
路由模块 > npm install koa-simple-router –save//app.js const Koa = require('koa'); const app = new Koa(); const router = require('koa-simple-router'); app.use(router(_ => { _.get('/', (ctx, next) => { ctx.body = 'hello' }); _.get('/index', (ctx, next) => { ctx.body = { data: 123 } }) })); app.listen(3000, () => { console.log("sever started") });
koa1转koa2 的转换器 npm install koa-convert –save
usage:
const convert = require('koa-convert')
静态文件中间件 > npm install koa-static –save
usage:
//静态文件资源 最好是用convert先转换下 app.use(convert(serve(path.join(__dirname,'./public'))));
文件模板 >
模板引擎 [npm install koa-swig –save] (https://www.npmjs.com/package/koa-swig)
同时依赖 co 合成器 npm install co –save
usage:
const render = require('koa-swig'); const co = require('co'); const path = require('path'); //koa v2.x 支持的文件模板 app.context.render = co.wrap(render({ //设置简单的配置 root: path.join(__dirname, 'views'),//视口路径 autoescape: true, cache: 'memory', // disable, set to false ext: 'html', writeBody: false })); //配置好了就可以挂在路由上使用了 _.get('/html',async (ctx, next) => { ctx.body = await ctx.render('index'); })
项目run起来
//package.json "start": "supervisor app.js" //或者 "start": "node app.js" //npm run start
至于大型项目架构, 请看我的
工程化构建的相关博文
相关文章推荐
- 构建企业级项目管理体系(07)-资源有限,必须做出选择
- 构建企业级项目管理体系(07)-资源有限,必须做出选择 推荐
- 浅谈前端项目发展的四个阶段——库/框架、构建优化、模块化开发、组件化开发和资源管理
- maven-构建测试项目、外部依赖、项目(文档,模板)、快照、自动化、依赖管理、自动化部署
- Laravel小项目之第2节 Laravel-静态资源管理及模板布局
- Vue2+VueRouter2+Webpack+Axios 构建项目实战(四)调整 App.vue 和 router 路由
- express+gulp构建项目(五)swig模板
- Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(四)调整 App.vue 和 router 路由
- Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(四)调整 App.vue 和 router 路由
- Vue2+VueRouter2+webpack 构建项目实战(三)配置路由,整俩页面(下)
- 项目管理实践【三】每日构建【Daily Build Using CruiseControl.NET and MSBuild】
- Project 2013项目管理教程(4):设置资源
- 【项目管理和构建】十分钟教程,eclipse配置maven + 创建maven项目(三)
- Eclipse Maven构建WebApp项目资源目录显示不全的原因与解决方式
- 【项目管理和构建】——Maven下载、安装和配置(二)
- React第三方组件1(路由管理之Router的使用②多层级跳转及重定向)
- 项目管理系列之项目范围时间及资源管理(一)
- 项目管理之项目周报模板
- 【项目管理和构建】——Maven简介(一)
- unity开发-记录项目目录管理及作用 Assetbundle 存放及资源更新