0.1.2 • Published 2 years ago

express6 v0.1.2

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

Modern, fast, unopinionated, minimalist web framework for node.

Github Workflow Github Workflow Snyk Vulnerabilities for GitHub Repo Node version Codecov Sponsors CodeStyle Prettier


// npm install express6

import { express } from 'express'
const app = express()

app.get('/', (req, res) => {
  res.send('Hello World')
})

app.listen(3000)

What?

Why?

I love express and would love to see people using it for at least another 10 years!

What about "Unhandled Promise Rejection"?

This has been take care of 👍

ESModules?

It is ready to be exported as esm, but express6 v1 is all about compatibility with express v4, therefore express6 is ships as commonjs.

New

I added req.URL, a short-hand getter for new URL(this.req, `http://${req.headers.host}`).

Types

The types are simpler and a bit different than in express v4. For example, all 3 app.use() below are valid, but express6 throws a type error on the third app.use(). In the example below, I recommend using the spread operator.

Middleware with TypeScript

// some middleware
const midi = (req, res, next) => next()

app.get('/', ...[midi, midi], (req, res) => {})
app.get('/', midi, midi, (req, res) => {})
// @ts-ignore
app.get('/', [midi, midi], (req, res) => {})

Error routes with TypeScript

import type { Request, Response, NextFunction } from 'express6'

// @ts-ignore
app.use((err: any, req: Request, res: Response, next: NextFunction) => {
  console.log('ERROR:', err)
  return res.send(err)
})

Todo

  • improve types
  • remove all @ts-ignore
  • stricten tsconfig

Make a PR!

Breaking Changes?

Yes, same as Express v5.

Everything Else?

Same as expressjs.