convexpress v2.3.0
convexpress
Employ conventions to register express routes. This is done by creating route definition objects - convroutes - which:
- register the route's method and path
- handle input validation
- document the route
Install
npm install --save convexpressNote: this library requires nodejs >= 8
Use
Define a route (convroute)
/* File: src/api/pets/get.js */
// Assuming NODE_PATH=src
const dbClient = require("services/db");
exports.path = "/pets";
exports.method = "get";
exports.description = "List pets";
exports.tags = ["pets"];
exports.responses = {
"200": {
description: "pets list"
}
};
exports.parameters = [
{
name: "status",
description: "Filter by pet status (e.g. available / not available)",
in: "query",
required: false,
type: "string"
}
];
exports.handler = async (req, res) => {
const pets = await dbClient.query(`SELECT * FROM pets WHERE status = $1`, [
req.query.status
]);
res.status(200).send(pets);
};Register the route and serve it
/* File: src/server.js */
const express = require("express");
const convexpress = require("convexpress");
const options = {
info: {
title: "pet store",
version: "1.0.0"
},
host: "localhost:3000"
};
const api = convexpress(options)
// Serve the API's swagger definition at /swagger.json
.serveSwagger()
// Register the route (assuming NODE_PATH=src)
.convroute(require("api/pets/get"))
// Or register multiple routes at once
.loadFrom(`${__dirname}/api/**/*.js`);
const server = express()
.use(api)
.listen(process.env.PORT);API
convexpress(options)
Create an express router object (convrouter), which the additional methods
convroute, serveSwagger, and loadFrom.
Arguments
optionsobject: top-level properties of the swagger definition
Returns
The express router (convrouter).
convrouter.convroute(convroute)
Registers a convroute.
Arguments
convrouteobject required: a convroute definition object:pathstring requiredmethodstring requiredhandlerfunction _required__paramtersArray< object >middlewareArray< function >descriptionstringtagsArray< string >responsesMap< object >
Returns
The convrouter, to allow for method chaining.
convrouter.serveSwagger()
Registers the route GET /swagger.json for serving the swagger definition, and
the route GET /swagger/ for serving the swagger UI html.
Arguments
None.
Returns
The convrouter, to allow for method chaining.
convrouter.loadFrom(pattern)
Loads and registers convroutes from files matching the specified pattern.
Arguments
patternstring required: glob pattern of files to load convroutes from
Returns
The convrouter, to allow for method chaining.
Contributing
See CONTRIBUTING.md.
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago