Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
decache(path);
decache(_path.resolve(path));
// 控制器
if (isController(path)) {
const paths = _path.parse(path);
paths.dir = _.split(paths.dir, "/");
paths.dir.shift();
paths.dir = paths.dir.join("/");
const Ctrl = require(_path.resolve(path));
if (
Ctrl instanceof KoaRouter ||
_.isEqual(
Object.keys(Ctrl.__proto__),
Object.keys(KoaRouter.prototype)
)
) {
// 移除旧的
for (const layer of Ctrl.routes().router.stack) {
_.remove(doodoo.router.stack, o => {
return o.path === layer.path;
});
}
return;
}
if (!isClass(Ctrl)) {
return;
}
const methods = Object.getOwnPropertyNames(Ctrl.prototype);
const layers = [];
})
router.register('/test2', ['GET'], _ => {}, {
name: 'module'
})
console.log(router.url('module') === '/test1')
try {
router.register('/test2', ['GET'], null, {
name: 'error-module'
})
} catch (e) {
console.error(e)
}
console.log(Router.route)
app
.use(router.routes()) // 将该Router对象的中间件注册到Koa实例上,后续请求的主要处理逻辑
.use(router.allowedMethods()) // 添加针对OPTIONS的响应处理,以及一些METHOD不支持的处理
app.listen(8888, _ => console.log('server run as http://127.0.0.1:8888'))
import Router from 'koa-router';
import { render } from 'src/server/middleware/render';
// page components
import WavesNG from 'src/common/containers/WavesNG';
import WavesNGReducer from 'src/common/containers/WavesNG/reducer';
const subdomains = new Router();
subdomains.get(
'/waves-ng',
render({
script: 'wavesNG',
component: WavesNG,
description: 'Help us test Waves-NG',
reducer: WavesNGReducer,
})
);
export default subdomains;
import compress from 'koa-compress';
import send from 'koa-send';
import fs from 'fs';
import path from 'path';
import crypto from 'crypto';
import dedent from 'dedent';
import React from 'react';
import ReactDOMServer from 'react-dom/server';
import { collect } from 'linaria/server'; // eslint-disable-line import/no-unresolved
import App from './components/App';
import config from '../serve.config';
const cache = {};
const css = fs.readFileSync(path.join(__dirname, '../dist/styles.css'), 'utf8');
const app = new Koa();
const router = new Router();
app.use(compress());
router.get('/', async ctx => {
const html = ReactDOMServer.renderToStaticMarkup();
const { critical, other } = collect(html, css);
const slug = crypto
.createHash('md5')
.update(other)
.digest('hex');
cache[slug] = other;
ctx.type = 'html';
ctx.body = dedent`
};
try {
let Koa = require('koa');
let originalUse = Koa.prototype.use;
Koa.prototype.use = function (middleware) {
let wrapped = wrapMiddleware(middleware);
return originalUse.call(this, wrapped);
};
Koa.prototype.use._original = originalUse;
registerWrapped(Koa.prototype, 'use');
try {
const Router = require('koa-router');
let originalRegister = Router.prototype.register;
Router.prototype.register = function () {
let middlewares = Array.isArray(arguments[2]) ? arguments[2] : [arguments[2]];
let wrappedMiddlewares = middlewares.map(middleware => wrapMiddleware(middleware));
arguments[2] = wrappedMiddlewares;
return originalRegister.apply(this, arguments);
};
Router.prototype.register._original = originalRegister;
registerWrapped(Router.prototype, 'register');
} catch (e) {
// app didn't use koa-router
}
} catch (e) {
// app didn't use koa
try {
const Router = require('koa-router');
let originalRegister = Router.prototype.register;
Router.prototype.register = function () {
let middlewares = Array.isArray(arguments[2]) ? arguments[2] : [arguments[2]];
let wrappedMiddlewares = middlewares.map(middleware => wrapMiddleware(middleware));
arguments[2] = wrappedMiddlewares;
return originalRegister.apply(this, arguments);
};
Router.prototype.register._original = originalRegister;
registerWrapped(Router.prototype, 'register');
} catch (e) {
// app didn't use koa-router
}
} catch (e) {
// app didn't use koa
throw new Error('koa-newrelic cannot work without koa');
}
}
// tansaction name
let parseTransactionName;
if (opts.customTransactionName && typeof opts.customTransactionName === 'function') {
parseTransactionName = opts.customTransactionName;
} else {
// newrelic has frontend display logic, which will format the transaction name if it's under express
// (method, path) => 'Expressjs/' + method + '/' + path;
registerWrapped(Koa.prototype, 'use');
try {
const Router = require('koa-router');
let originalRegister = Router.prototype.register;
Router.prototype.register = function () {
let middlewares = Array.isArray(arguments[2]) ? arguments[2] : [arguments[2]];
let wrappedMiddlewares = middlewares.map(middleware => wrapMiddleware(middleware));
arguments[2] = wrappedMiddlewares;
return originalRegister.apply(this, arguments);
};
Router.prototype.register._original = originalRegister;
registerWrapped(Router.prototype, 'register');
} catch (e) {
// app didn't use koa-router
}
} catch (e) {
// app didn't use koa
throw new Error('koa-newrelic cannot work without koa');
}
}
// tansaction name
let parseTransactionName;
if (opts.customTransactionName && typeof opts.customTransactionName === 'function') {
parseTransactionName = opts.customTransactionName;
} else {
// newrelic has frontend display logic, which will format the transaction name if it's under express
try {
let Koa = require('koa');
let originalUse = Koa.prototype.use;
Koa.prototype.use = function (middleware) {
let wrapped = wrapMiddleware(middleware);
return originalUse.call(this, wrapped);
};
Koa.prototype.use._original = originalUse;
registerWrapped(Koa.prototype, 'use');
try {
const Router = require('koa-router');
let originalRegister = Router.prototype.register;
Router.prototype.register = function () {
let middlewares = Array.isArray(arguments[2]) ? arguments[2] : [arguments[2]];
let wrappedMiddlewares = middlewares.map(middleware => wrapMiddleware(middleware));
arguments[2] = wrappedMiddlewares;
return originalRegister.apply(this, arguments);
};
Router.prototype.register._original = originalRegister;
registerWrapped(Router.prototype, 'register');
} catch (e) {
// app didn't use koa-router
}
} catch (e) {
// app didn't use koa
throw new Error('koa-newrelic cannot work without koa');
}
//@flow
import Router from 'koa-router'
import client from './client'
const router = Router()
router.post('/invoke/:method', async(ctx) => {
const method = ctx.params.method || ''
if (method === '') throw new Error(`Received empty method query`)
console.log(`Call method ${method}`)
const args = ctx.request.body || {}
const result = await client(method, args)
ctx.body = result
})
export default router
import Router from 'koa-router'
import { deleteDirectory } from '../../../lib/pg/directory'
import { JERROR_INTERNAL_SERVER_ERROR, JERROR_BAD_REQUEST } from '../../../lib/error'
const router = new Router()
router.delete('/:directory_uuid', async ctx => {
if (!ctx.params.directory_uuid) {
return JERROR_BAD_REQUEST(ctx, "no 'directory_uuid' specified in the params")
}
let result = await deleteDirectory(
ctx.jwt.payload.email,
ctx.directory_uuid,
ctx.request.body.force_delete
)
if (!result) {
return JERROR_INTERNAL_SERVER_ERROR(ctx, 'delete failed')
}
ctx.status = 200
ctx.body = { directory: { uuid: ctx.params.directory_uuid }, error: false }