express6

🏅 Modern, fast, unopinionated, minimalist web framework.

MIT 6 个版本
安装
npm install express6
yarn add express6
pnpm add express6
bun add express6
README

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.

版本列表
0.1.2 2021-11-18
0.1.1 2021-11-16
0.1.0 2021-11-15
0.0.2 2021-11-13
0.0.1 2021-11-13
0.0.0 2021-11-13