Package to only accept POST request for microservices built with Micro.
When developing a microservice with Nodejs and zeit/micro you may want to accept only POST methods.
micro-post
is a simple package that allows you to achieve this with a lot of simplicity.
Just encapsulating your existing function in the micro-post
default exported function will automatically validate the requests, include the Access-Control-Request-Method
and status code in the response header, and response body with Method Not Allowed
.
The package allows you to modify it's response code, plain text, change the response by a JSON or even execute a function to manage the request by your own. You can find how to do that in the examples section.
Install using npm:
npm install --save micro-post
Install using yarn:
yarn add micro-post
This is the basic usage. When a non-POST request is received, the response will be 405 – Method Not Allowed
.
const post = require('micro-post')
module.exports = post(async (req, res) => {
return `It's a POST request!`
})
You can parameterize some different responses like other messages, JSON and even a function to manage the request by your own.
const post = require('micro-post')
const options = {
errorCode: 404,
response: 'My custom response',
contentType: 'text/plain'
}
module.exports = post(options, async (req, res) => {
return `It's a POST request!`
})
Each example has its own README explaining how to execute it.
All default options: default
Example that use the default options of the package.
Custom Message: custom-message
The response is a custom message Changing the default message is simple as breathe
with content-type text/plain
.
Custom JSON: custom-json
The response is a custom JSON with content-type application/json
.
The package change automatically the content-type to application/json
in case your response
property in the options parameter is an object.
{
error: {
message: 'Invalid method'
}
}
Custom HTML: custom-html
The response is a custom HTML with content-type text/html
.
Custom Function: custom-function
Before the response ends, the function that receives the request
and the response
from HTTP is called.
Feel free to open issues and create PRs! :)
This package is linted by XO and tested by AVA.
After install the dependencies you can execute npm test
, that will test different responses. Each test creates its Micro instance to simulate a real environment.
MIT License
Copyright (c) 2016 Rômulo Alves
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.