JSPM

  • Created
  • Published
  • Downloads 261
  • Score
    100M100P100Q90166F
  • License MIT

An Simple http framework for Deno and Friends

Package Exports

  • nhttp-land
  • nhttp-land/dist/mod.esm.js
  • nhttp-land/dist/mod.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (nhttp-land) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

logo

NHttp

An Simple web-framework for Deno and Friends.

ci coverage codefactor denoland deps size size licence prs nestland


Features

  • Focus on simple and easy to use.
  • Fast Performance. One of the fastest Frameworks.
  • Cross runtime support (Deno, Node, Bun, etc).
  • Low overhead & True handlers (no caching anything).
  • Built-in Middleware.
  • Sub router support.
  • Template engine support (jsx, ejs, nunjucks, eta, pug, ..etc).
  • Return directly on handlers.
  • Auto parses the body (json / urlencoded / multipart / raw).

See Examples

v1.3.0 requires Deno 1.35 or higher.

CLI

Deno

deno run -Ar npm:create-nhttp

Npm

npm create nhttp@latest

Manual Installation

deno.land

import nhttp from "https://deno.land/x/nhttp/mod.ts";

deno-npm

import nhttp from "npm:nhttp-land";

npm/yarn

npm i nhttp-land

// or

yarn add nhttp-land
// module
import nhttp from "nhttp-land";

// commonjs
const nhttp = require("nhttp-land").default;

Simple Usage

Create file app.ts and copy-paste this code.

import nhttp from "https://deno.land/x/nhttp/mod.ts";

const app = nhttp();

app.get("/", () => {
  return "Hello, World";
});

app.get("/cat", () => {
  return { name: "cat" };
});

app.listen(8000);

Run

deno run -A app.ts

Using JSX + Htmx

Create file app.tsx and copy-paste this code.

/** @jsx n */
/** @jsxFrag n.Fragment */

import nhttp from "https://deno.land/x/nhttp/mod.ts";
import { htmx, n, renderToHtml } from "https://deno.land/x/nhttp/lib/jsx.ts";

const app = nhttp();

app.engine(renderToHtml);

app.use(htmx());

app.get("/", () => {
  return (
    <button hx-post="/clicked" hx-swap="outerHTML">
      Click Me
    </button>
  );
});

app.post("/clicked", () => {
  return <span>It's Me</span>;
});

app.listen(8000);

Run

deno run -A app.tsx

more docs => https://nhttp.deno.dev

3rd-party libs

Like std-libs for NHttp.

Usage

// Deno
import {...} from "https://deno.land/x/nhttp/lib/my-libs.ts";

// Deno NPM
import {...} from "npm:nhttp-land/my-libs";

// Node or Bun
import {...} from "nhttp-land/my-libs";

ServeStatic

import nhttp from "https://deno.land/x/nhttp/mod.ts";
import serveStatic from "https://deno.land/x/nhttp/lib/serve-static.ts";

const app = nhttp();

app.use(serveStatic("./my_folder"));

// with prefix
app.use(serveStatic("./my_folder", { prefix: "/assets" }));
// or
// app.use("/assets", serveStatic("./my_folder"));

// with URL
app.use(serveStatic(new URL("./my_folder", import.meta.url)));

more libs => https://nhttp.deno.dev/docs/3rd-party-lib

License

MIT