当前位置: 首页 > 软件库 > Web应用开发 > Web框架 >

koa-ip

授权协议 Readme
开发语言 JavaScript
所属分类 Web应用开发、 Web框架
软件类型 开源软件
地区 不详
投 递 者 归德厚
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

koa-ip

koa-ip is a ip filter middleware for koa, support whitelist and blacklist.

Install

$ npm i koa-ip --save
or 
$ yarn add koa-ip

Usage

ip(String|RegExp)
ip(Array{String|RegExp})
ip({
  whitelist: Array{String|RegExp},
  blacklist: Array{String|RegExp},
  handler: async (ctx, next) => {}// handle blacklist ip
})

Examples

const Koa = require('koa')
const ip = require('koa-ip')

const app = new Koa()

app.use(ip('192.168.0.*'))// whitelist
// app.use(ip(['192.168.0.*', '8.8.8.[0-3]']))// whitelist
// app.use(ip({
//   whitelist: ['192.168.0.*', '8.8.8.[0-3]'],
//   blacklist: ['144.144.*']
// }))

app.listen(3000)

blacklist handler

const app = new Koa()
app.use((ctx, next) => {
  ctx.request.ip = '127.0.0.1'
  return next()
})
app.use(ip({
  blacklist: ['127.0.0.*'],
  handler: async (ctx, next) => {
    ctx.status = 403
  }
}))

app.use((ctx, next) => {
  ctx.status = 200
})

app.listen(3000)

NB: If missing blacklist handler, default ctx.status = 403.

More examples see test.

Test

$ npm test (coverage 100%)
or
$ yarn test (coverage 100%)

License

MIT

  • 需求:后端通过接口获取客户端访问的IP地址,并解析为具体的省市 获取IP 在接口的方法中调用getClientIP(ctx.request) function getClientIP(req) { return req.headers['x-forwarded-for'] || // 判断是否有反向代理 IP req.headers['x-real-ip'] }; 根据

  • 1. 安装 npm i koa-router 2. 导入 const router=require('koa-router')({ prefix:"/user", // 路由前缀 }); 3. 不同请求 请求方式有get、post、put、del、all,主要使用get和post,all接收所有请求类型,当all和其他类型同时存在时,优先使用其他类型。 // 修改为其他请求类型,只需要

  • koa-session是koa的session管理中间件,最近在写登录注册模块的时候学习了一下这部分的代码,感觉还比较容易看明白,让自己对于session的理解也更加深入了,这里总结一下。 session基础知识 这部分算是基础知识,熟悉的朋友可以跳过。 我们都知道http协议本身是无状态的,因此协议本身是不支持“登录状态”这样的概念的,必须由项目自己来实现。我们常常说到session这个概念,但

  • koa

        ‎ Table of Contents 1. 简单搭建http server 2. 搭建的http server 2.1. 添加了简单的返回内容 2.2. 抛出错误 2.3. 中间件传递数据(state) 2.4. 中间件代码执行过程 2.4.1. 执行代码 2.4.2. 访问输出的代码 2.4.3. 多个中间件合成一个 2.4.4. 测试响应耗时的列子 3. 一些中间件 3.1. koa

  • koa-连接mysql数据库 安装数据库插件 npm install mysql -s default.js编写:// 数据库配置 const config = { port: 3000, // koa运行端口 database:{ DATABASE: '****', //数据库 USERNAME: '****', //用户 PASSWORD: '****', //密码 PORT: '3306',

  • koa-service ├─ babel.config.json - Babel配置项 ├─ package-lock.json ├─ package.json ├─ README.md └─ src - 源文件 ├─ app - koa实例 │

  • 1.安装koa-compress中间件 cnpm i koa-compress -S 2.配置koa-compress中间件 const Koa = require('koa'); const app = new Koa(); /* gzip压缩配置 start */ const compress = require('koa-compress'); const options = {

  • hey 老伙计 今天我们来讲一下koa的context.js还有一些tj自己写的库吧。 context.js 'use strict'; const createError = require('http-errors'); const httpAssert = require('http-assert'); const delegate = require('delegates'); const

  • koa源码阅读之koa-compose/application.js koa-Compose 为了理解方便特地把注释也粘进来 //这英语。我也来翻译一波 //大概就是把所有的中间件组合返回一个完整大块的中间件 /** * Compose `middleware` returning * a fully valid middleware comprised * of all those whi

  • 中间件写法 根据我们前文的分析,中间件通常为以下形式: async (ctx, next) => {....} 复制代码 一般来说中间件有自己的配置,所以我们总结出来一种通用的中间件写法,我们通过传入配置的方式可以返回根据配置定制的中间件: // 通用中间件写法 module.exports = function(options) { // 配置处理 return aysnc (ct

  • 在写项目的过程中遇到一个关于koa中session取值的bug bug描述:相同的IP发出的请求,第一个接口给session赋值之后,第二个接口请求的时候从session中取值为undefined 解决方案: 在后端代码中设置credentials: true app.use(cors({ credentials: true })); 在前端的axios请求中设置withCredential

  • koa文档 简介 koa 是由 Express 原班人马打造的,致力于成为一个更小、更富有表现力、更健壮的 Web 框架。使用 koa 编写 web 应用,通过组合不同的 generator,可以免除重复繁琐的回调函数嵌套,并极大地提升错误处理的效率。koa 不在内核方法中绑定任何中间件,它仅仅提供了一个轻量优雅的函数库,使得编写 Web 应用变得得心应手。 koa1.x的用generator,

  • 前传 出于兴趣最近开始研究koa2,由于之前有过一些express经验,以为koa还是很好上手的,但是用起来发现还是有些地方容易懵逼,因此整理此文,希望能够帮助到一些新人。 如果你不懂javascript,建议你先去撸一遍红宝书javascript高级程序设计 如果你不熟悉ES6,建议你先去撸一遍阮一峰老师的ECMAScript 6入门 因为我也是新人,我只是整理了我的学习经历,如何填平踩到的坑。

  • 什么是跨域 由于浏览器同源策略,凡是发送请求url的协议、域名、端口三者之间任意一个与当前页面地址不同即为跨域。存在跨域的情况: 网络协议不同,如http协议访问https协议。 端口不同,如80端口访问8080端口。 域名不同,如qianduanblog.com访问baidu.com。 子域名不同,如abc.qianduanblog.com访问def.qianduanblog.com。 域名和域

  • 目的 大家都知道,我们配置redis服务端时,出于安全考虑,一定要修改默认端口,添加密码。因此,本文介绍当用 koa-generic-session 和 koa-redis 框架实现redis存储session数据、搭建nodejs服务器的时候,更改redis-server端口和密码之后,如何配置koa2-redis框架以及更改参数。 引用框架 const session=require('koa

  • Koa 笔记 Koa 旨在为Web应用程序和API提供更小、更丰富和更强大的能力,相对于 express 具有更强的异步处理能力,Koa的核心代码只有1600+行,是一个更加轻量级的框架。 koa 注册的中间件提供了两个参数 ctx:上下文(Context)对象 koa并没有像express一样,将req和res分开,而是将它们作为 ctx的属性 ctx代表依次请求的上下文对象 ctx.reque

 相关资料
  • Koa

    Koa art-template view render middleware. support all feature of art-template. Install npm install --save art-template npm install --save koa-art-template Example const Koa = require('koa'); const ren

  • koa

    koa是Express的下一代基于Node.js的web框架,目前有1.x和2.0两个版本。 历史 1. Express Express是第一代最流行的web框架,它对Node.js的http进行了封装,用起来如下: var express = require('express'); var app = express(); app.get('/', function (req, res) {

  • Koa

    Koa 是下一代的 Node.js 的 Web 框架。由 Express 团队设计。旨在提供一个更小型、更富有表现力、更可靠的 Web 应用和 API 的开发基础。 Koa可以通过生成器摆脱回调,极大地改进错误处理。Koa核心不绑定任何中间件,但提供了优雅的一组可以快速和愉悦地编写服务器应用的方法。 示例代码: var koa = require('koa');var app = koa();//

  • Koa - HelloWorld 以上便是全部了,我们重点来看示例,我们只注册一个中间件, Hello Worler Server: <?php $app = new Application(); // ... $app->υse(function(Context $ctx) { $ctx->status = 200; $ctx->body = "<h1>Hello Worl

  • koa-log4js A wrapper for log4js-node which support Koa logger middleware.Log message is forked from Express (Connect) logger file. Note This branch is use to Koa v2.x.To use Koa v0.x & v1.x, please ch

  • koa-rudy 环境 node -v >=6.9.0pm2 启动 npm install npm run dev 开发环境 npm run dev || test || prod 接口测试 npm run mocha 推荐开发工具 vscode 实现 支持 async/await MVC架构(middleware-view-controller) RESTful a