您的位置:首页 > 其它

koa2 - 项目构建 - [router路由,swig模板,转换, 资源管理 ]

2018-04-07 19:17 721 查看
koa1与koa2的区别:

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


至于大型项目架构, 请看我的
工程化构建
的相关博文
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐