mio-express
Expose Mio resources via Express middleware.
- Pair with mio-ajax for automatic client-server communication.
- PATCH support with fast-json-patch
- Responds with 405 status for unsupported methods
- Support
Prefer
header to control whether PUT and PATCH return the resource - Includes
Location
header for created resources - Emits events for accessing requests
- Query parameter type coercion
Example
var mio = ;var ServerRoutes = plugin; var User = mioResource; User;
This will expose Express routing middleware via User.router
:
var bodyParser = ;var express = ;var app = ; app ;
Query parameter type coercion:
var Item = Resource
Installation
Install using npm:
npm install mio-express
API Reference
Members
- mio-express
- mio-express.plugin([options])
- event: "request"
- event: "response"
- event: "request:get"
- event: "response:get"
- event: "request:post"
- event: "response:post"
- event: "request:put"
- event: "response:put"
- event: "request:patch"
- event: "response:patch"
- event: "request:delete"
- event: "response:delete"
- event: "request:collection:get"
- event: "response:collection:get"
- event: "request:collection:patch"
- event: "response:collection:patch"
- event: "request:collection:delete"
- event: "response:collection:delete"
- mio-express~mio
mio-express.plugin([options])
Returns Mio plugin function.
Handlers return http-errors
.
These should be handled by your downstream error handling middleware.
Type coercion
In order to convert the intended query parameters into numbers, add
coerce: "number"
to the resource's attribute defintion.
Params
- [options]
Object
Returns: MioExpressPlugin
Example
User;
Type coercion:
var Item = Resource
event: "request"
Emitted by route handlers on request.
Params
- request
express.Request
- next
function
Scope: inner event of mio-express
Example
Resource;
event: "response"
Emitted by route handlers on response.
Params
- response
express.Response
- next
function
Scope: inner event of mio-express
Example
Resource;
event: "request:get"
Emitted by route handlers on GET request.
Params
- request
express.Request
- next
function
Scope: inner event of mio-express
event: "response:get"
Emitted by route handlers on GET response.
Params
- response
express.Response
- resource
mio.Resource
- next
function
Scope: inner event of mio-express
event: "request:post"
Emitted by route handlers on POST request.
Params
- request
express.Request
- next
function
Scope: inner event of mio-express
event: "response:post"
Emitted by route handlers on POST response.
Params
- response
express.Response
- result
mio.Resource
|mio.Resource.Collection
- next
function
Scope: inner event of mio-express
event: "request:put"
Emitted by route handlers on PUT request.
Params
- request
express.Request
- next
function
Scope: inner event of mio-express
event: "response:put"
Emitted by route handlers on PUT response.
Params
- response
express.Response
- resource
mio.Resource
- next
function
Scope: inner event of mio-express
event: "request:patch"
Emitted by route handlers on PATCH request.
Params
- request
express.Request
- next
function
Scope: inner event of mio-express
event: "response:patch"
Emitted by route handlers on PATCH response.
Params
- response
express.Response
- resource
mio.Resource
- next
function
Scope: inner event of mio-express
event: "request:delete"
Emitted by route handlers on DELETE request.
Params
- request
express.Request
- next
function
Scope: inner event of mio-express
event: "response:delete"
Emitted by route handlers on DELETE response.
Params
- response
express.Response
- resource
mio.Resource
- next
function
Scope: inner event of mio-express
event: "request:collection:get"
Emitted by route handlers on collection GET request.
Params
- request
express.Request
- next
function
Scope: inner event of mio-express
event: "response:collection:get"
Emitted by route handlers on collection GET response.
Params
- response
express.Response
- collection
mio.Resource.Collection
- next
function
Scope: inner event of mio-express
event: "request:collection:patch"
Emitted by route handlers on collection PATCH request.
Params
- request
express.Request
- next
function
Scope: inner event of mio-express
event: "response:collection:patch"
Emitted by route handlers on collection PATCH response.
Params
- response
express.Response
- collection
mio.Resource.Collection
- next
function
Scope: inner event of mio-express
event: "request:collection:delete"
Emitted by route handlers on collection DELETE request.
Params
- request
express.Request
- next
function
Scope: inner event of mio-express
event: "response:collection:delete"
Emitted by route handlers on collection DELETE response.
Params
- response
express.Response
- next
function
Scope: inner event of mio-express
Contributing
Please submit all issues and pull requests to the mio/mio-express repository!
Tests
Run tests using npm test
or gulp test
.
Code coverage
Generate code coverage using gulp coverage
and open coverage.html
in your
web browser.
Support
If you have any problem or suggestion please open an issue here.