
Security News
Attackers Are Hunting High-Impact Node.js Maintainers in a Coordinated Social Engineering Campaign
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.
Minimalist library that routing functionality of program.
This is a Node.js module available through the npm registry.
Before installing, download and install Node.js. Node.js 0.10 or higher is required.
If this is a brand new project, make sure to create a package.json first with the npm init command.
Installation is done using the npm install command:
npm install midmare
That's really pretty simple. The same way as you use an "express.js" application, but without HTTP Layer.
const {default: mid, Router: { Router }} = require('midmare');
const app = mid();
/*
You can create your own router
*/
const someRouter = new Router({});
someRouter.use((ctx, next) => {
ctx.set('someRoutingData', 'Hello Mid!');
next();
});
someRouter.process('/some-route-of-router', (ctx) => {
ctx.send('/next-route');
});
/*
You can use params in url
*/
someRouter.process('/model/:container/:id', ctx => {
console.log(ctx.params);
});
/*
You can add `helper` functions and use them from `ctx`.
Helper should be named function declaration -
`function nameOfFunction() { ... }`
*/
app.helper(function someHelperName(yourArg1, yourArg2) {
console.log('Hello helper.', yourArg1, yourArg2);
} /*, second argument is binding of any context you want. To use `this` in function. */);
app
.use(function(ctx, next) {
// Two ways to set data to context.
ctx.user = 'Hi MID.';
ctx.set('user', 'Hi MID.');
next();
})
.process('/', function(ctx) {
console.log('CTX', ctx.get('data'));
/* Sending to another path */
ctx.send('/some/other/path');
/*
DO NOT USE `app.send` inside of route/middleware !!!!
Be careful to use multiple sending in one route/ middleware, that can overload your app.
And be careful with cyclic sending. App have protection from it.
*/
if(youWantUseYourHelper) {
ctx.someHelperName('yourArg1', 'yourArg2');
}
})
// Adding router to chain
.use(someRouter.routes());
app.init();
/*
`init` method ignore creating a waiter(timeout) for your functionality.
If you will create app with `withListen` option and run `init` or `listen`, your application will not be closed until
you will call method `stop`.
*/
/* To send to app some data you can use method `send` */
app.send('/', 'Some data that you sending.');
/*
If you want send data to all middleware just use regexp patters,
this library uses same matching path as express.js app.
*/
app.send('*', 'some data');
/* Send data to route with params */
app.send('/model/Game/145932157', { data: 123 });
FAQs
program functional router
We found that midmare demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Multiple high-impact npm maintainers confirm they have been targeted in the same social engineering campaign that compromised Axios.

Security News
Axios compromise traced to social engineering, showing how attacks on maintainers can bypass controls and expose the broader software supply chain.

Security News
Node.js has paused its bug bounty program after funding ended, removing payouts for vulnerability reports but keeping its security process unchanged.