1.4.1 • Published 9 months ago

perstorp v1.4.1

Weekly downloads
-
License
MIT
Repository
github
Last release
9 months ago

A Typescript compatible file based router for Node.js.

Made for sending json and getting json.

Insallation

$ npm i perstorp

Setup

Config

Make sure to create a file named perstorp.config.json in the root of your project.

It should look something like this:

{
  "cors": {
    "origin": "*",
    "methods": "GET,POST,PUT,DELETE",
    "headers": "Content-Type,Authorization"
  },
  "routesPath": "/api/v1/routes",
  "logger": true,
  "timeout": 1000,
  "typescript": true
}
  • cors: You can read more about it here.
  • routesPath: Is the path to the directory where you store your routes
  • logger (optional): Defaults to false. Creates pretty logs from the activity on the server.
  • timeout (optional): Time limit for a request
  • typescript (optional): Needs to be set to true if you're using typescript.

Creating a server

import perstorp from "perstorp";

const PORT = 3000;

const app = perstorp();

app.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}`);
});

Routes

In order to create a route you just create a new directory in the directory that you specified in the perstorp.config.json. Create a file called index.ts in the new directory.

Example

/api/v1/routes/hello/index.ts

Get function

The function has to have the name get

import type { ReqHandler } from "perstorp";

export const get: ReqHandler = ({ res }) => {
  res.json({ message: "World" });
};

Data

To get the data that is sent with the request just use the data parameter in your request handler.

import type { ReqHandler } from "perstorp";

export const post: ReqHandler = ({ res, data }) => {
  console.log(data); // Outputs json recieved in the request
  res.json({ message: "World" });
};

Search parameters

To get the search params for the request just use the params parameter in your request handler

import type { ReqHandler } from "perstorp";

export const post: ReqHandler = ({ res, params }) => {
  console.log(params); // Outputs search params
  res.json({ message: "World" });
};

Sending a JSON response

Use the json function on the res object

import type { Reqhandler } from "perstorp";

export const get: ReqHandler = ({ res }) => {
  res.json({ message: "World" }); // No need to stringify it. Perstorp does that for you.
};

Context

Use the context object to store things you might want to use in your handlers

index.ts

import perstorp from "perstorp";
import SomethingYouNeed from "somethingyouneed";

const PORT = 3000;

const somethingYouNeed = new SomethingYouNeed();

const app = perstorp({ somethingYouNeed });

app.listen(PORT, () => {
  console.log(`Server is running on port ${PORT}`);
});

the handler

import type { ReqHandler } from "perstorp";

export const get: ReqHandler = ({ res, context }) => {
  const { somethingYouNeed } = context;
  res.json({ message: "World" });
};
1.4.1

9 months ago

1.3.1

10 months ago

1.3.0

10 months ago

1.2.1

10 months ago

1.2.0

10 months ago

1.1.5

10 months ago

1.1.4

10 months ago

1.1.3

10 months ago

1.1.2

10 months ago

1.1.1

10 months ago

1.1.0

10 months ago

1.0.0

10 months ago