storj-service-middleware

common middleware for various storj services

Storj Service Middleware

Common Express middleware for various Storj services.

$ npm install storj-service-middleware --save
var Storage = require('storj-service-storage-models');
var db = new Storage({ /* config */ });
var middleware = require('storj-service-middleware');
var app = require('express')();

app.use(middleware.authenticate(db));
app.use(middleware.errorhandler());
Rate Limiter

Instantiate the rate limiter with a redis client clientand your express app app

const app = express();
const client = require('redis').createClient();
const limiter = middleware.rateLimiter(client);

Then, you can use limiteras middleware and pass it an options object.

app.get('/route', limiter({
  lookup: function(req) {
    return [req.user._id, req.connection.remoteAddress]
  },
  onRateLimited: function(req, res, next) {
    log.info('user rate limited', req.user);
    return next(new errors.BadRequestError('Slow down, dude.'));
  },
  total: 150,
  expire: 1000 * 60 // 150 requests a minute allowed
  }), function(req, res) {
  res.status(200).send('hello');
});
Testing

Redis must be running for the tests to work. The easiest way to get an instance running is via Docker.

$ docker run --name redis -p 6379:6379 -d redis

Then, npm testwill kick off the test suite for you.

License

Credit for much of the rate limiter code goes to https://github.com/juliendangers/express-limiter2released under the MIT license.

All other code released under AGPLv3.

HomePage

https://github.com/storj/service-middleware#readme

Repository

https+ssh://git@github.com/storj/service-middleware


上一篇:ecc-tools
下一篇:mongoose-int32

相关推荐

  • 简介AngularJS中使用factory和service的方法

    AngularJS支持使用服务的体系结构“关注点分离”的概念。服务是JavaScript函数,并负责只做一个特定的任务。这也使得他们即维护和测试的单独实体。控制器,过滤器可以调用它们作为需求的基础。

    3 年前
  • 用 Service Worker 实现前端性能优化

    前言 : 说起前端性能优化, 我们首先想到的可能就是用 Gulp 、Webpack 之类的自动化构建工具对 HTML、CSS 、JS 代码进行压缩,同时优化图片资源。

    2 年前
  • 玩转Service Worker生命周期

    先来了解一下Service Worker Service Worker简介及其注意事项 Service Worker 是浏览器在后台独立于网页运行的脚本,它打开了通向不需要网页或用户交互的功能的大门。

    20 天前
  • 深度剖析 redux applyMiddleware 中 compose 构建异步数据流的思路

    前言 本作者站在自己的角度~~深入浅出...算了别这么装逼~~分析 在设计过程中通过 构建异步数据流的思路。自己假设的一些场景帮助理解,希望大家在有异步数据流并且使用redux的过程中能够有...

    2 年前
  • 浏览器缓存、CacheStorage、Web Worker 与 Service Worker

    前言 最近在翻红宝书,看到 Web Worker 那章,猛然意识到,通过它竟然可以把几个缓存相关的概念串起来,甚是有趣,撰文记之。最后我也写了一个完整的离线应用 Demo(https://link...

    3 年前
  • 构建一个angular的modal.service

    一直在使用别人封装的组件库,非常好用,真的非常了不起。但是看了代码感觉理解起来非常困难,都给我看睡着了,说了我的困境之后,同学们都建议我打包跑路。 这里开始做笔记,把所有的有关联的全部记下来,最后看能...

    8 个月前
  • 手写-实现Redux功能、applyMiddleware、中间件

    Rredux是什么? Redux是JavaScript应⽤用的状态容器器。它保证程序⾏行行为⼀一致性且易易于测试。 WX20200701162028@2x.png(/public/upload/3...

    1 个月前
  • 性能优化小册 - 可编程式缓存:Service Workers

    Service Workers 不仅可以应用于 PWA ,PC 端也可以利用其强大的功能实现一些有趣的优化,网络中有很多关于 Service Workers 介绍的比较好的文章,基于小册宗旨,本文并不...

    2 个月前
  • 基于webpack-hot-middleware热加载相关错

    错误1:找不到webpackhmr 在webpack的entry配置添加引用路径'webpackhotmiddleware/client?path=/webpackhmr&timeout...

    2 年前
  • 前端每周清单第 45 期: Safari 支持 Service Worker, Parcel 完整教程, 2017 前端大事件

    本期是 2017 年的最后一期,不知不觉陪伴大家已经一年了;非常感谢所有阅读过清单的同学的支持,山高水远,来年再见~ 新闻热点 Safari 支持 Service Work...

    3 年前

官方社区

扫码加入 JavaScript 社区