Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
microrouter
Advanced tools
:station: _**Micro Router -**_ A tiny and functional router for Zeit's [micro](https://github.com/zeit/micro)
:station: Micro Router - A tiny and functional router for Zeit's micro
async/await
Install as project dependency:
$ yarn add microrouter
Then you can define your routes inside your microservice:
const { send } = require('micro')
const { router, get } = require('microrouter')
const hello = (req, res) =>
send(res, 200, `Hello ${req.params.who}`)
const notfound = () =>
send(res, 404, 'Not found route')
module.exports = router(
get('/hello/:who', hello),
get('/*', notfound)
)
async/await
You can use your handler as an async function:
const { send } = require('micro')
const { router, get } = require('microrouter')
const hello = async (req, res) =>
send(res, 200, await Promise.resolve(`Hello ${req.params.who}`))
module.exports = router(
get('/hello/:who', hello)
)
Each route is a single basic http method that you import from microrouter
and has the same arguments:
get(path, handler)
post(path, handler)
put(path, handler)
patch(path, handler)
delete(path, handler)
head(path, handler)
options(path, handler)
path
A simple url pattern that you can define your path. In this path you can set your parameters using a :
notation. The req
parameter from handler
will return this parameters as a object.
For more information about how you can define your path, see url-pattern, that's the package that we can use to match your paths.
The handler
method is simple function that will make some action base on your path.
The format of this method is (res, res) => {}
req.params
As you can see below, the req
parameter has a property called params
that represent the parameters that you defined in yout path
:
const { router, get } = require('microrouter')
const request = require('some-request-lib')
// service.js
module.exports = router(
get('/hello/:who', (req, res) => req.params)
)
// test.js
const response = await request('/hello/World')
console.log(response) // { who: 'World' }
req.query
The req
parameter also has a query
property, that represent the queries
defined in your requision url:
const { router, get } = require('microrouter')
const request = require('some-request-lib')
// service.js
module.exports = router(
get('/user', (req, res) => req.query)
)
// test.js
const response = await request('/user?id=1')
console.log(response) // { id: 1 }
req.body
Finally, the last property of req
parameter that you might use a lot is body
, that represent your body requisition passed through your method. Note that body
result is the same that you will sent, here the body hasn't any parser, if you can parse it you need to do that by yourself
const { router, post } = require('microrouter')
const request = require('some-request-lib')
// service.js
module.exports = router(
post('/user', (req, res) => req.body)
)
// test.js
const body = { name: 'John' }
const response = await request.post('/user', { body, json: true })
console.log(response) // { name: 'John' }
FAQs
🚉 A tiny and functional router for ZEIT's Micro
The npm package microrouter receives a total of 4,065 weekly downloads. As such, microrouter popularity was classified as popular.
We found that microrouter 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.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.