0.9.8 • Published 3 years ago

orbty v0.9.8

Weekly downloads
2
License
MIT
Repository
github
Last release
3 years ago

orbty

Simple and high performance web server structure for building scalable, practical and fast server applications.

const Orbty = require("orbty");
orbty = new Orbty();

orbty.get("/welcome", ({ query }) => {
  return { hello: "world" };
});

orbty.listen(8080)

Installation

Installation is easy with the npm command

$ npm install orbty

Current features

  • High test coverage.
  • Middlewares support.
  • Compatible with Typescript.
  • Compatible with express middleware.
  • Automatic HTTP error handler.
  • Integrated body-parser.
  • Dynamic url.
  • High performance.
  • Static files.
  • Support routing by instance.
  • Compatible with your native server. (HTTP, HTTPS).

Examples

Define how the data will be sent in the response.

Basic

// use simple function return
orbty.post("/post/:id", Orbty.json(), ({ body, params }) => {
  return {
    id: params.id,
    content: body.content
  };
});

// use response
orbty.post("/post/:id", (req, res) => {
  res.json({
    id: req.params.id,
    content: req.body.content
  });
});

Errors

Orbty gives you the possibility to treat errors as you see fit. We recommend using the HttpException:

orbty.get("/", (req, res) => {
  throw new Orbty.HttpException("Message error");
});

Set HTTP response status:

orbty.get("/posts/:id", ({ params }) => {
  if (params.id === "1") {
    return "found";
  }

  throw new Orbty.HttpException("Post not found", 404);
});

Create your own errors with your own status codes. Set code attribute with HTTP status:

class NotFound extends Orbty.HttpException {
  constructor(message) {
    super(message, 404);
  }
}

Use:

orbty.get("/posts/:id", ({ params }) => {
  if (params.id === "1") {
    return "found";
  }

  throw new NotFound("Post not found");
});

Or use single response:

orbty.get("/posts/:id", ({ params }, res) => {
  if (params.id === "1") {
    return "found";
  }

  res.status(404).send("Post not found");
});

Capture error handlers:

orbty.error((error, req, res) => {
  console.error(error);
});

Middlewares

Orbty is compatible with all your favorite express middleware and the syntax is the same. We decided to keep the same syntax for its familiarity and simplicity.

const Orbty = require("orbty");
const middleware = require("my-middleware");

const orbty = new Orbty();

orbty.use(middleware);

// ...

The body-parser middleware already integrated with Orbty.

const Orbty = require("orbty");
const orbty = new Orbty();

orbty.post("/posts", Orbty.json({ extended: true }), ({ body }) => {
  return body;
});

orbty.post("/posts/comment", Orbty.text(), ({ body }) => {
  return body;
});

// ...

Static files

Send static files through your api. Orbty contains a middleware that solves this easily:

const Orbty = require("orbty");
const orbty = new Orbty();

orbty.use(Orbty.static(`${__dirname}/media`));
orbty.use(Orbty.static(`${__dirname}/photos`));

// ...

Cache

We currently have a separate Cache management module for Orbty and also compatible with Express. Check orbty-http-cache.

Orbty instancies

An Orbty instance acts as a router.

const Orbty = require("orbty");

const orbty = new Orbty();
const orbtyV2 = new Orbty();

orbtyV2.get("/", () => "This is v2 API");

orbty.use("/v2", orbtyV2);

Https

Use Orbty with https and others http protocols:

const https = require("https");
const Orbty = require("orbty");
const fs = require("fs");

const orbty = new Orbty();

orbty.get("/", () => {
  return "this secure server";
})

// Node JS native documentation
const options = {
  key: fs.readFileSync("secury.pem"),
  cert: fs.readFileSync("secury-cert.cert")
};

https.createServer(options, orbty.server()).listen(443);

TODO

  • Improve documentations on external page
  • Improve stream
0.9.8

3 years ago

0.9.7

3 years ago

0.9.6

3 years ago

0.9.4

3 years ago

0.9.2

4 years ago

0.9.0

4 years ago

0.8.9

4 years ago

0.8.8

4 years ago

0.8.7

4 years ago

0.8.4

4 years ago

0.8.3

4 years ago

0.8.2

4 years ago

0.8.1

4 years ago

0.8.0

4 years ago

0.7.7

4 years ago

0.7.6

4 years ago

0.7.5

4 years ago

0.7.4

4 years ago

0.7.0

4 years ago

0.6.9

4 years ago

0.6.8

4 years ago

0.6.6

4 years ago

0.6.5

4 years ago

0.6.2

4 years ago

0.6.1

4 years ago