express6
TypeScript icon, indicating that this package has built-in type declarations

0.1.2Β β€’Β PublicΒ β€’Β Published

express6 logo

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?

  • Clone of express.js v4.17.1 (master branch from Aug 14, 2021)
  • Converted to TypeScript
  • Updated all dependencies
  • Manually merged branch 5 (except new router)

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.

Package Sidebar

Install

npm i express6

Weekly Downloads

422

Version

0.1.2

License

MIT

Unpacked Size

301 kB

Total Files

48

Last publish

Collaborators

  • yandeu