NodeJ Koa2 安装使用 reeber
2024-09-12 03:00:01
介绍
Koa 是由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web 框架。 使用 koa 编写 web 应用,通过组合不同的 generator,可以免除重复繁琐的回调函数嵌套, 并极大地提升错误处理的效率。
koa 不在内核方法中绑定任何中间件, 它仅仅提供了一个轻量优雅的函数库,使得编写 Web 应用变得得心应手。(来自kao官网)
基于async/await实现中间体系的koa2框架将会是是node.js web开发方向大势所趋的普及框架。基于generator/yield的koa1将会逐渐被koa2替代,毕竟使用co.js来处理generator是一种过渡的方式,虽然有其特定的应用场景,但是用async/await会更加优雅地实现同步写法。
安装
- koa 依赖node V7.6.0及以上版本,
- 首先确认node版本在7.6.0以上,版本低的请自行搞定。
npm init // 初始化package.json
npm i koa // 安装koa2
常用的引入模板
- 我们一般是不会这样直接返回的,实际开发中一般都是返回一个模版文件,我们可以先让koa读取这个文件,然后返回到用户界面。
首先先创建一个views的目录,在里面新建一个template.html文件内容如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>hello koa2</title>
</head>
<body>
<h1>Hello Koa2!</h1> </body>
</html>Html前台页面
将app.js中的内容修改为如下:
const fs = require('fs');
const Koa = require('koa');
const app = new Koa(); app.use(async (ctx) => {
// ctx.body = 'hello koa2'
ctx.type = 'html';
ctx.body = fs.createReadStream('./views/template.html');
}); app.listen(1029);
console.log('koa damo is starting at port 1029');JS Koa代码
基础结构语法
const Koa = require('koa');
const Router = require('koa-router'); let server = new Koa();
let router = new Router(); server.listen(8080); router.get('/a', async ctx=>{
ctx.body='aaaaa';
}); server.use(router.routes())const Koa = require('koa');
const Router = require('koa-router'); let server = new Koa();
let router = new Router(); server.listen(8080); router.get('/a', async ctx=>{
ctx.body='aaaaa';
}); server.use(router.routes())Koa基础结
有哪些 属性?
- ctx.method 请求方法
- ctx.url
- ctx.path
- ctx.query ?user=Haisen&id=1
- ctx.params 数据参数
- ctx.ip 客户端IP
多层路由的分层写法
- 一级路由
一层选择 主路由 server.use(router.routes()); - 二层路由
- 一级路由
二层路由 1.引入路由对象 2.创建路由 3.配置路由 4.对外使用
- const Koa = require('koa');
const Router = require('koa-router');let server = new Koa();
server.listen(8080);
let router = new Router();router.get('/',async ctx=>{
ctx.body = '根目录'
});router.use('/home',require('./routes/home'));
// router.use('/admin',require('./routes/admin'));server.use(router.routes())
Koa2一层路由
const Router = require('koa-router'); // 嵌套二级
let home = new Router(); home.get('/',ctx=>{
ctx.body ='前端';
});
home.get('/login', async ctx=>{
ctx.body='login';
});
home.get('/sigin', async ctx=>{
ctx.body='sigin';
}); module.exports=home.routes();
Koa2二层路由
最新文章
- Entity Framework 6 Recipes 2nd Edition(11-9)译 ->; 在LINQ中使用规范函数
- jQuery操作DOM元素
- css3鼠标悬停图片渐显飞入效果
- Ubuntu下安装IDA pro
- JAVA Applet
- Java中数据库连接池原理机制的详细讲解以及项目连接数据库采用JDBC常用的几种连接方式
- Eclipse去除JavaScript验证错误
- gdalwarp切割tif参数
- bzoj 3039 悬线法求最大01子矩阵
- c# 简单文件流读写CSV文件
- Beanstalkd介绍
- UESTC_男神的约会 2015 UESTC Training for Dynamic Programming<;Problem J>;
- OpenCV学习 2:播放AVI视频
- Java NIO实战之聊天室
- 代码检查工具jshint和csslint
- 关于MySQL latch争用深入分析与判断
- [解决问题] E: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)
- react native中使用echarts
- Linux-003-Resource temporarily unavailable
- Could not autowire. No beans of &#39;TbItemMapper&#39; type found. less... (Ctrl+F1) Checks autowiring prob
热门文章
- [WC2016]挑战NPC
- 关于webuploader 在ie9上不能触发 input 的 change 事件
- iOS线程和进程的区别和联系
- [转载]hive中order by,sort by, distribute by, cluster by作用以及用法
- 从数据库读取数据后将其输出成html标签
- Day03——Python函数
- JAVA中的那些名词解释!
- Python学习---内置函数的学习
- Spark Worker原理和源码剖析解密:Worker工作流程图、Worker启动Driver源码解密、Worker启动Executor源码解密等
- C++ 的编译过程