1.0.4 • Published 2 months ago
@smpx/koa-request v1.0.4
Request
Handle basic tasks for koajs.
Example config:
const Koa = require('koa');
const {Request} = require('@smpx/koa-request');
const app = new Koa();
const requestOptions = {
// install request middleware for access to ctx.$req
middleware: true,
// base domain of the app
baseDomain: 'smartprix.com',
// limit the request from a single ip (10 requests in 1 minute)
rateLimit: {
interval: {min: 1},
max: 10,
// don't apply rate limit to these requests
skip(ctx) {
return false;
},
},
// enable basic authentication
basicAuth: {
enabled: true,
// skip basic authentication if request is proxied by nginx
skipOnProxy: true,
// skip basic authentication if request is from localhost
skipOnLocalhost: true,
// custom skip function (don't apply basicAuth if this function returns true)
skip(ctx) {
return false;
},
// basicAuth username
name: 'admin',
// basicAuth password
pass: 'admin',
},
// serve static files from these paths
staticPaths: [
{
path: '/',
root: `${__dirname}/public`,
// don't serve these paths directly
skip(ctx) {
return ctx.path.startWith('/robots.txt');
}
},
{
path: '/static',
root: `${__dirname}/static`,
allowOrigins: '*',
immutable: true,
},
{
path: '/files',
root: `${__dirname}/files`,
immutable: true,
// custom path of the file
async getPath(ctx) {
return DB.fetch('paths', ctx.path);
},
},
],
// ban bots
banBots: {
// enable banning of common bots (does not include search bots)
commonBots: true,
// ban these user agents
userAgents: [
'80legs',
],
// ban these ips
ips: [
'27.210.',
],
// what email to show in ban messages
email: 'a@b.com',
}
};
// provides, ctx.user, ctx.$req, rateLimit, static paths and more
Request.install(app, requestOptions);
1.0.2
8 months ago
1.0.1
8 months ago
1.0.0
8 months ago
1.0.4
2 months ago
1.0.3
8 months ago
0.5.0
1 year ago
0.4.3
3 years ago
0.4.1
3 years ago
0.4.0
3 years ago
0.4.2
3 years ago
0.3.0
3 years ago
0.2.7
4 years ago
0.2.6
4 years ago
0.2.8
3 years ago
0.2.5
4 years ago
0.2.4
4 years ago
0.2.3
4 years ago
0.2.2
4 years ago
0.2.1
4 years ago
0.2.0
4 years ago
0.1.1
5 years ago
0.1.0
5 years ago