micro-koa
Creating microservices with koa inspired by zeit/micro
Example
The following example sleep.js
will wait before responding (without blocking!)
const send = ;const sleep = ; module { await ; ;};
To run the microservice on port 3000
, use the micro-koa
command:
micro-koa sleep.js
To run the microservice on port 3000
and localhost instead of listening on every interface, use the micro-koa
command:
micro-koa -H localhost sleep.js
Usage
Install the package (requires at least Node v4):
npm install --save micro-koa
And start using it in your package.json
file:
"main": "index.js""scripts": "start": "micro-koa"
Then write your index.js
(see above for an example).
After that, you can make the server run by executing the following command:
npm start
API
micro
micro(fn)
-
This function is exposed as the
default
export. -
Use
require('micro-koa')
. -
Returns a
http.Server
created bykoa
that uses the providedfn
as the last middleware. -
The supplied function is run with
await
. It can beasync
! -
Example:
const micro = ;const sleep = ;const srv =;srv;
send
send(res, statusCode, data = null)
-
Use
require('micro-koa').send
. -
statusCode
is aNumber
with the HTTP error code, and must always be supplied. -
If
data
is supplied it is sent in the response. Different input types are processed appropriately, andContent-Type
andContent-Length
are automatically set.Stream
:data
is piped as anoctet-stream
. Note: it is your responsibility to handle theerror
event in this case (usually, simply logging the error and aborting the response is enough).Buffer
:data
is written as anoctet-stream
.object
:data
is serialized as JSON.string
:data
is written as-is.
-
If JSON serialization fails (for example, if a cyclical reference is found), a
400
error is thrown. See Error Handling. -
Example
const send =module {;}
createError
createError(code, msg, orig)
- Use
require('micro').createError
. - Creates an error object with a
statusCode
. - Useful for easily throwing errors with HTTP status codes, which are interpreted by the built-in error handling.
orig
setserror.originalError
which identifies the original error (if any).
Deployment
You can use the micro-koa
CLI for npm start
:
Then simply run npm start
!
Credits
This package couldn't exist without the awesome micro and koa packages!
License
MIT © C.T. Lin