DEV Community

Craig Morten
Craig Morten

Posted on • Updated on

ExpressJS for Deno

Excited to say that I've been working on a fast, minimalist web framework for Deno ported from ExpressJS called Opine!

import opine from "https://deno.land/x/opine@0.21.2/mod.ts";

const app = opine();

app.use((req, res) => {
  res.send("Hello World");
});

app.listen(3000);
Enter fullscreen mode Exit fullscreen mode

There are quite a few web frameworks out there already for Deno, such as Oak which is based on koa, but none that attempt to mirror the internals and API of ExpressJS that we know and love.

Opine attempts to solve this by completely porting ExpressJS over to TypeScript in Deno, making changes only where the Deno APIs dramatically differ from Node.

Installation

Opine is a Deno module available to import direct from this repo and via the Deno Registry.

Before importing, download and install Deno.

You can then import Opine straight into your project:

import opine from "https://deno.land/x/opine@0.21.2/mod.ts";
Enter fullscreen mode Exit fullscreen mode

Features

  • Robust routing
  • Focus on high performance
  • HTTP helpers

And more to come as we achieve feature parity with ExpressJS.

Philosophy

The Express philosophy is to provide small, robust tooling for HTTP servers, making it a great solution for single page applications, web sites, hybrids, or public HTTP APIs.

Opine will aim to achieve these same great goals, focusing first on developing robust tooling and features before moving onto accelerating performance and becoming super lightweight.

Examples

Opine comes with a few useful examples to get you started. To view the examples, clone the Opine repo:

git clone git://github.com/asos-craigmorten/opine.git --depth 1
cd opine
Enter fullscreen mode Exit fullscreen mode

Then just run whichever example you want:

deno --allow-net --allow-read ./example/hello-world/index.ts
Enter fullscreen mode Exit fullscreen mode

More!

Want to know more? Head over to the Opine GitHub page for full details, or check out one of the available doc resources:

Just a quick read today - stay tuned for further updates and some more posts on how you can use Opine and guides on how to convert your existing ExpressJS apps from Node to Opine apps on Deno!

Want to help, found a bug, or have a suggestion? Please reach out by commenting below or raising issues / PR on the repo!

See also: Opine Tutorial Part 1: Express For Deno

Discussion (2)

Collapse
goran7777 profile image
Goran

Thanks a lot for spent yours time to help our young community (Y).

Collapse
thassadar1387 profile image
Thassadar1387