New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Release 5.0 #2237
base: 4.x
Are you sure you want to change the base?
Release 5.0 #2237
Conversation
here's some mostly refactor-based changes i'd like to see. AFAIK you've got this covered @dougwilson, but let me know if you need help:
|
All great stuff @jonathanong :) I added all but the |
How close is this to a prerelease? I just want to know if you think it's stable enough to start playing around with for future projects. |
So you're always welcome to play around with |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
c80f806
to
318fd4b
Compare
This is a tracking issue for release 5.0.
5.0.0-beta.1 published on npm
I am trying to give better visibility for upcoming changes and so am trying out making a PR for a release here, pulling from the official next release branch into 4.x. This allows for the current pending changes to be easily visible.
Please keep feature requests in their own issues
I'm also leaving this PR unlocked so people can make comments/etc. and we'll see how it goes :) If you want to make a comment on a particular change, please make the comment in the "Files changed" tab so comments are not lost during a rebase (they will occur frequently has 4.x progresses).
The goal of Express 5 is to be API tweaks & the removal of all code from the Express repository, moving into components in the pillarjs project (https://github.com/pillarjs), providing at least basic support for promise-returning handlers and complete HTTP/2 functionality. Express 5 would become a "view into pillarjs" and would be an arrangement of these components.
List of changes for release:
router@2.0.0-alpha.1
)app.param
(thoughrouter@2.0.0-beta.2
)app.router
which is just generally useful for directly calling to the routerapp.use(app.router)
does not explodeFix views to resolve paths async Resolve paths for views asynchronously #2653query parser
option default to'simple'
Consider disabling extended query string parsing by default #3361bodyParser.urlencoded
default to'simple'
(thoughbody-parser@2.0.0-beta.1
)req.host
actually return the host req.host should be req.hostname #2179req.query
a getter instead of added by middleware remove/opt-out ofqs
module #2215res.render
always async callback, to hide sync view engines app.render callbacks twice #2668Makeres.render
use the default engine even when an extension was found Feature request View global option ignore extname #2708Makeres.sendFile
use the"etag"
application setting Disable ETag forres.sendFile()
#2294res.status
throw on invalid argument type Throw on bad argument to res.status() #2795 Throw error if argument to res.status is null or undefined #2797 Throw TypeError if argument passed to res.status is null or undefined #3111 Gracefully handle invalid status codes #3137 Gracefully handle invalid status codes #3143Makeexpress.static
use the"etag"
application setting Disabling etag after express.configure doesn't work #2317router@2.0.0-beta.1
)Provide separate locals and options to view engine separate locals from config values #2648mime-types
instead ofmime
path-is-absolute
module for absolute path detection utils: use external pathIsAbsolute #2620List of deprecated things removed:
:
inname
forapp.param(name, fn)
app.del
app.param(fn)
req.acceptsCharset
req.acceptsEncoding
req.acceptsLanguage
res.json(obj, status)
res.json(status, obj)
Remove res.json(status, obj) signature #2939res.jsonp(obj, status)
res.jsonp(status, obj)
Remove res.jsonp(status, obj) signature #2940req.param()
res.redirect(url, status)
Remove res.redirect(url, status) signature #2941res.send(body, status)
res.send(status)
res.send(status, body)
Remove res.send(status, body) signature #2942res.sendfile
res.vary()
(i.e. no arguments) Remove res.vary() (no arguments) signature #2943List of things to refactor (still provided by
express
):Betterres.cookie
and general cookie reading/setting (newkeygrip
andcookies
modules; newreq.cookies
or such)Move prototype properties to own repo Move req / res prototype extension to a separate repo #2432Router
to it's own repo Router As Separate Module #2411Testing this release
If you want to try out this release, you can install it with the following command:
Owners/collaborators: please do not merge this PR :)