学习笔记之koa.js 框架

1 篇文章 0 订阅
1 篇文章 0 订阅

koa.js 框架

安装koa框架

$ npm init --yse //初始化package.json
$ npm install koa koa-router koa-bodyparser --save
/*
安装koa框架及常用中间件
koa-router koa的路由中间件
koa-bodyparser koa的POST请求数据获取中间件
*/

koa使用

const Koa = require('koa');
const app = new Koa();
app.use(async (ctx, next) => {
	//ctx为上下文,包含node req、res对象,koa request、response对象等
	await next();
	//next()下面的代码会在koa匹配到路由并响应请求后执行
});

koa-router使用

const Koa = require('koa');
const Router = require('kos-router');

const app = new Koa();
const router = new Router();

router.get('/', async ctx => {
	ctx.body = "hello Koa!";
}); //定义路由

app.use(router.routes()); //使用路由
app.use(router.allowedMethods()); 

koa-bodyparser使用

const Koa = require('koa');
const bodyParser = require('koa-bodyparser');

const app = new Koa();

app.use(bodyParser());
app.use(async ctx => {
	ctx.body = ctx.request.body; //ctx.request.body为POST请求传递的数据
});

koa-views使用

$ npm install koa-views --save //安装
$ npm install ejs --save //安装ejs模板引擎

const Koa = require('koa');
const views = require('koa-views');

const app = new Koa();

//配置ejs模板引擎,views()的第一个参数为视图文件目录,第二个参数为使用哪种模板引擎
app.use(views('views', { extension: 'ejs' })); //视图文件的后缀名为“.ejs”
/*
也可使用以下方式配置模板引擎,“ __dirname ”为当前目录,当使用以下方式时,视图文件的后缀名为“.html”
app.use(views(__dirname + '/views', {
	map: {
		html: 'ejs'
	}
}));
*/
//ctx.state 全局命名空间,里面的数据可全局使用
app.use(async (ctx, next) => {
	ctx.state = {
		name: "张三",
		age: "25"
	};
	await next();
});
app.use(async ctx => {
	await ctx.render('index.ejs', { title: "hello Koa" }); 
	//渲染视图文件,可传递第二个参数对象将后端数据传递到视图文件
	//render()方法是异步的,需使用"await"关键字等待render()方法执行完毕后传递数据
});

/*******ejs模板引擎使用*******/
//绑定数据
<%=title%> 
//循环渲染数据,即在ejs中,js代码需要用“<% //js代码 %>”包围
<%for(let i = 0; i < array.length; i++) {%>
	<p><%=array[i]%></p>
<%}%>
//引入ejs模块文件
<% include public/header.ejs %>
//绑定HTML标签数据,let content = `<div>渲染带HTML标签数据</div>`
<%-content%>
//条件渲染数据 ,let num = 24;
<% if(num > 24) { %>
	<p>数字大于24</p>
<% } else { %>
	<p>数字小于24</p>
<% } %>

/*******art-template模板引擎使用(相对渲染比较快的模板引擎)*******/
/*有两种渲染模式
标志语法
{{ //两个大括号包围JS代码 }}
原始语法,与ejs相同
<% //JS代码 %>
*/
//安装
$ npm install  art-template koa-art-template --save
//引入
cosnt Koa = require('koa');
const render = require('koa-art-template');
const path = require('path');

const app = new Koa();
//配置
render(app, {
	root: path.join(__dirname, 'views'), //视图文件目录
	extname: '.art', //视图文件后缀名,可更改为.html
	debug: process.env.NODE_ENV !== 'production' //是否开启调试模式
});
//使用
app.use(async ctx => {
	await ctx.render('index.art', { title: "hello Koa" }); 
});

koa-static使用

$ npm install koa-static --save //安装

const Koa = require('koa');
const serve = require('koa-static');

const app = new Koa();

app.use(serve('static')); //static为资源目录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值