安装node之后执行
npm install koa2-proxy
var proxy = require('koa2-proxy');
// 本地静态服务器
proxy.static(__dirname);
// 本地模拟文件
proxy.mockfile(__dirname + '/mockfile.txt');
// 解析smarty模板
proxy.smarty({ext: '.html', data: {data: 'smarty html'}});
// 转发请求到指定host
proxy.when('/api', function(ctx) {
ctx.request.host = 'www.test.com';
ctx.request.protocol = 'http';
});
// 配置代理请求结束后修改body
proxy.when({'.html', phase: 'response'}, function(ctx) {
ctx.response.body += '<div>test</div>';
});
// 请求开始时转发本地请求到网络
proxy.on('start', function (ctx) {
console.log('start: ', ctx.request.url, ctx.isLocal());
ctx.request.host = 'www.koa2.com';
});
// 请求结束时输出状态
proxy.on('end', function (ctx) {
console.log('end: ' + ctx.response.status);
console.log('end: ' + ctx.response.get('content-type'));
// console.log('end: ' + ctx.response.body);
});
// 监听端口
proxy.listen(3010);
执行npm install 安装依赖执行npm run build 编译src到lib目录
启动监听端口,启动http和https服务器和代理,默认不启动https代理
示例:
var proxy = require('koa2-proxy');
proxy.static(__dirname + '/output/');
proxy.listen(8000);
示例:
// 启动https代理,则可以如下配置
var proxy = require('koa2-proxy');
proxy.static(__dirname + '/output/');
proxy.listen({port: 8000,https: true});
当请求的内容和condition匹配时,执行callback
示例: test.html的内容设置为test
proxy.when('test.html',function(ctx){
ctx.response.body = 'test';
});
示例: test.html的内容增加一个div
proxy.when({url:'test.html',phase: 'response' },function(ctx){
ctx.response.body +='<div>test</div>';
});
浏览根网址时自动跳转到指定地址
匹配规则之后发送模拟数据,主要用来mock请求数据
示例: 配置某个文件作为模拟规则文件
proxy.mockfile(__dirname + '/server.conf');
示例: 部分路径不使用模拟文件配置
proxy.when('/test1/',function (ctx) {
ctx.mockfile = false;
});
proxy.mockfile(__dirname + '/server.conf');
使用浏览器打开指定网页,假如不指定域名,则会使用localhost和监听端口(listen调用时的监听端口)
创建静态文件服务器
示例:
proxy.static(__dirname + '/output', {path: '/static/', index: 'index.html'});
koa-match
替代内置when方法1:设置CORS允许跨域 app.js const Koa = require('koa'); const bodyParser = require('koa-bodyparser'); //post数据处理 const router = require('koa-router')(); //路由模块 const cors = require('./libs/koa-cors'); //跨域处
//constructor constructor() { super(); this.proxy = false; this.middleware = []; //中间件栈 this.subdomainOffset = 2; this.env = process.env.NODE_ENV || 'development'; this.context
koa项目中 安装插件svg-captcha npm i --save svg-captcha src\api\captcha.js const svgCaptcha = require('svg-captcha'); function getCaptcha(ctx) { // 若创建算数式验证码,将create改为createMathExpr const newCaptch
最近在写xmocker的工具,用于开发前期的mock数据,不可避免的用到了代理的中间件。当然,github上有关于http-proxy封装的中间件。毕竟是自己练手的项目,就自己写了个中间件,方便定制功能。 http-proxy库用于koa中,是使用它的 proxy.web方法。常规的用法是: proxy.web(req, res, { target: 'http://mytarge
现在正式进入koa源码,找到koa文件下/lib/application.js文件 一、依赖项 const isGeneratorFunction = require('is-generator-function'); //判断是否为generator方法 const debug = require('debug')('koa:application'); // debug命名空间 const o
我们在使用koa2做路由拦截后一般都习惯于直接将查找对应处理函数的过程映射到项目的文件夹目录,如: router.get('/test', app.controller.index.test); app.controller.index.test 其实就是对应的处理函数,也就是 (ctx, next) => { },我们习惯于将app.controller.index.test映射到根目录下的
1. 简介 Koa是由Express原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的Web框架,使用Koa编写web应用,通过组合不同的generator,可以免除重复繁琐的回调函数前腰,并极大地提升错误处理的效率。Koa不在内核方法中绑定任何中间件,它仅仅提供了一个轻量优雅的函数库,使得编写Web应用变得得心应手。 2. 安装koa-generator 安装:npm install k
Koa2-blog(有问题可以加qq群:725165362) node+koa2+mysql (欢迎star) 现在最新的代码有变动,请参照最新的代码,新增了上传头像、分页、markdown语法等 教程 Node+Koa2+Mysql 搭建简易博客 创建数据库 登录数据库 $ mysql -u root -p 创建数据库 $ create database nodesql; 使用创建的数据库 $
Koa2 Boilerplate 这是团队近两年的 Koa2 + ES 2017 做 API 项目的最佳实践,项目中用到一些新的 Feature,并完成了从 request 到 service 和 DB(Sequlize)到 response 的全部流程。同时也包含了一些基本的 middleware。 项目用到的功能 �� Koa2 & koa-router Koa 相对于 Express 更吸引
koa2-winston koa2 version winston logger like express-winston Add logger to your koa2 server in 3 lines 中文介绍 koa2-winston Usage Installation Quick Start Configuration Examples Do not record any reques
注意: 请使用Node6以上版本,获得更好的性能与ES6支持。启用Babel-es2017,不再对一些Node6已支持的特性转码。 起因 因为Koa2已经在蓬勃发展中,Async/Await能切实的避免回调地狱。所以基于Koa2订制了一套模板。 全局安装koa2-easy,之后使用koa2命令即可在当前目录一键生成服务端程序。地址为:当前目录/koa2-easy npm i koa2-easy -
《Koa2进阶学习笔记》已完结 序言 从2017年2月份开始写这本开源电子书,是为了记录自己的学习轨迹和分享技术心得,本开源书的Koa2的基础进阶教程已经完结,更多的Koa.js的高阶学习会在后续新开几本书进行探索。感谢这一年来所有读者的关注!O(∩_∩)O。 本书为Koa.js 2.x 的入门书籍,如果想了解更多 Koa.js 的原理,可阅读 《Koa.js 设计模式-学习笔记》 更多前端技术学
Koa2 RESTful API 服务器脚手架 这是一个基于 Koa2 的轻量级 RESTful API Server 脚手架,支持 ES6。 约定使用 JSON 格式传输数据,POST、PUT、DELET 方法支持的 Content-Type 为 application/x-www-form-urlencoded、multipart/form-data、application/json可配置支持