diff --git a/_data/express.yml b/_data/express.yml index 8c2c87b156..0a6a4d6c0b 100644 --- a/_data/express.yml +++ b/_data/express.yml @@ -1,2 +1,2 @@ -current_version: "5.1.0" +current_version: "5.2.1" next_version: "undefined" \ No newline at end of file diff --git a/_includes/readmes/body-parser.md b/_includes/readmes/body-parser.md index 31b66ce06a..696c19efff 100644 --- a/_includes/readmes/body-parser.md +++ b/_includes/readmes/body-parser.md @@ -17,18 +17,18 @@ before trusting. For example, `req.body.foo.toString()` may fail in multiple ways, for example the `foo` property may not be there or may not be a string, and `toString` may not be a function and instead a string or other user input. -[Learn about the anatomy of an HTTP transaction in Node.js](https://nodejs.org/en/docs/guides/anatomy-of-an-http-transaction/). +[Learn about the anatomy of an HTTP transaction in Node.js](https://nodejs.org/en/learn/http/anatomy-of-an-http-transaction). _This does not handle multipart bodies_, due to their complex and typically large nature. For multipart bodies, you may be interested in the following modules: - * [busboy](https://www.npmjs.org/package/busboy#readme) and - [connect-busboy](https://www.npmjs.org/package/connect-busboy#readme) - * [multiparty](https://www.npmjs.org/package/multiparty#readme) and - [connect-multiparty](https://www.npmjs.org/package/connect-multiparty#readme) - * [formidable](https://www.npmjs.org/package/formidable#readme) - * [multer](https://www.npmjs.org/package/multer#readme) + * [busboy](https://www.npmjs.com/package/busboy#readme) and + [connect-busboy](https://www.npmjs.com/package/connect-busboy#readme) + * [multiparty](https://www.npmjs.com/package/multiparty#readme) and + [connect-multiparty](https://www.npmjs.com/package/connect-multiparty#readme) + * [formidable](https://www.npmjs.com/package/formidable#readme) + * [multer](https://www.npmjs.com/package/multer#readme) This module provides the following parsers: @@ -39,8 +39,8 @@ This module provides the following parsers: Other body parsers you might be interested in: -- [body](https://www.npmjs.org/package/body#readme) -- [co-body](https://www.npmjs.org/package/co-body#readme) +- [body](https://www.npmjs.com/package/body#readme) +- [co-body](https://www.npmjs.com/package/co-body#readme) ## Installation @@ -109,7 +109,7 @@ accept anything `JSON.parse` accepts. Defaults to `true`. The `type` option is used to determine what media type the middleware will parse. This option can be a string, array of strings, or a function. If not a function, `type` option is passed directly to the -[type-is](https://www.npmjs.org/package/type-is#readme) library and this can +[type-is](https://www.npmjs.com/package/type-is#readme) library and this can be an extension name (like `json`), a mime type (like `application/json`), or a mime type with a wildcard (like `*/*` or `*/json`). If a function, the `type` option is called as `fn(req)` and the request is parsed if it returns a truthy @@ -154,7 +154,7 @@ to `'100kb'`. The `type` option is used to determine what media type the middleware will parse. This option can be a string, array of strings, or a function. If not a function, `type` option is passed directly to the -[type-is](https://www.npmjs.org/package/type-is#readme) library and this +[type-is](https://www.npmjs.com/package/type-is#readme) library and this can be an extension name (like `bin`), a mime type (like `application/octet-stream`), or a mime type with a wildcard (like `*/*` or `application/*`). If a function, the `type` option is called as `fn(req)` @@ -205,7 +205,7 @@ to `'100kb'`. The `type` option is used to determine what media type the middleware will parse. This option can be a string, array of strings, or a function. If not a function, `type` option is passed directly to the -[type-is](https://www.npmjs.org/package/type-is#readme) library and this can +[type-is](https://www.npmjs.com/package/type-is#readme) library and this can be an extension name (like `txt`), a mime type (like `text/plain`), or a mime type with a wildcard (like `*/*` or `text/*`). If a function, the `type` option is called as `fn(req)` and the request is parsed if it returns a @@ -239,7 +239,7 @@ any of the following keys: The "extended" syntax allows for rich objects and arrays to be encoded into the URL-encoded format, allowing for a JSON-like experience with URL-encoded. For more information, please [see the qs -library](https://www.npmjs.org/package/qs#readme). +library](https://www.npmjs.com/package/qs#readme). Defaults to `false`. @@ -266,7 +266,7 @@ than this value, a 413 will be returned to the client. Defaults to `1000`. The `type` option is used to determine what media type the middleware will parse. This option can be a string, array of strings, or a function. If not a function, `type` option is passed directly to the -[type-is](https://www.npmjs.org/package/type-is#readme) library and this can +[type-is](https://www.npmjs.com/package/type-is#readme) library and this can be an extension name (like `urlencoded`), a mime type (like `application/x-www-form-urlencoded`), or a mime type with a wildcard (like `*/x-www-form-urlencoded`). If a function, the `type` option is called as @@ -488,7 +488,7 @@ app.use(bodyParser.text({ type: 'text/html' })) [coveralls-image]: https://img.shields.io/coverallsCoverage/github/expressjs/body-parser?branch=master [coveralls-url]: https://coveralls.io/r/expressjs/body-parser?branch=master [npm-downloads-image]: https://img.shields.io/npm/dm/body-parser -[npm-url]: https://npmjs.org/package/body-parser +[npm-url]: https://npmjs.com/package/body-parser [npm-version-image]: https://img.shields.io/npm/v/body-parser [ossf-scorecard-badge]: https://api.scorecard.dev/projects/github.com/expressjs/body-parser/badge -[ossf-scorecard-visualizer]: https://ossf.github.io/scorecard-visualizer/#/projects/github.com/expressjs/body-parser \ No newline at end of file +[ossf-scorecard-visualizer]: https://ossf.github.io/scorecard-visualizer/#/projects/github.com/expressjs/body-parser diff --git a/_includes/readmes/cors.md b/_includes/readmes/cors.md index 527a0f314e..2a377fd96e 100644 --- a/_includes/readmes/cors.md +++ b/_includes/readmes/cors.md @@ -5,9 +5,7 @@ [![Build Status][github-actions-ci-image]][github-actions-ci-url] [![Test Coverage][coveralls-image]][coveralls-url] -CORS is a node.js package for providing a [Connect](http://www.senchalabs.org/connect/)/[Express](http://expressjs.com/) middleware that can be used to enable [CORS](http://en.wikipedia.org/wiki/Cross-origin_resource_sharing) with various options. - -**[Follow me (@troygoode) on Twitter!](https://twitter.com/intent/user?screen_name=troygoode)** +CORS is a [Node.js](https://nodejs.org/en/) package for providing a [Connect](https://github.com/senchalabs/connect)/[Express](https://expressjs.com/) middleware that can be used to enable [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CORS) with various options. * [Installation](#installation) * [Usage](#usage) @@ -19,13 +17,13 @@ CORS is a node.js package for providing a [Connect](http://www.senchalabs.org/co * [Customizing CORS Settings Dynamically per Request](#customizing-cors-settings-dynamically-per-request) * [Configuration Options](#configuration-options) * [License](#license) -* [Author](#author) +* [Original Author](#original-author) ## Installation This is a [Node.js](https://nodejs.org/en/) module available through the [npm registry](https://www.npmjs.com/). Installation is done using the -[`npm install` command](https://docs.npmjs.com/getting-started/installing-npm-packages-locally): +[`npm install` command](https://docs.npmjs.com/downloading-and-installing-packages-locally): ```sh $ npm install cors @@ -211,7 +209,7 @@ app.listen(80, function () { ## Configuration Options * `origin`: Configures the **Access-Control-Allow-Origin** CORS header. Possible values: - - `Boolean` - set `origin` to `true` to reflect the [request origin](http://tools.ietf.org/html/draft-abarth-origin-09), as defined by `req.header('Origin')`, or set it to `false` to disable CORS. + - `Boolean` - set `origin` to `true` to reflect the [request origin](https://datatracker.ietf.org/doc/html/draft-abarth-origin-09), as defined by `req.header('Origin')`, or set it to `false` to disable CORS. - `String` - set `origin` to a specific origin. For example, if you set it to - `"http://example.com"` only requests from "http://example.com" will be allowed. - `"*"` for all domains to be allowed. @@ -237,21 +235,21 @@ The default configuration is the equivalent of: } ``` -For details on the effect of each CORS header, read [this](https://web.dev/cross-origin-resource-sharing/) article on web.dev. +For details on the effect of each CORS header, read [this](https://web.dev/articles/cross-origin-resource-sharing) article. ## License [MIT License](http://www.opensource.org/licenses/mit-license.php) -## Author +## Original Author [Troy Goode](https://github.com/TroyGoode) ([troygoode@gmail.com](mailto:troygoode@gmail.com)) [coveralls-image]: https://img.shields.io/coveralls/expressjs/cors/master.svg [coveralls-url]: https://coveralls.io/r/expressjs/cors?branch=master [downloads-image]: https://img.shields.io/npm/dm/cors.svg -[downloads-url]: https://npmjs.org/package/cors +[downloads-url]: https://npmjs.com/package/cors [github-actions-ci-image]: https://img.shields.io/github/actions/workflow/status/expressjs/cors/ci.yml?branch=master&label=ci [github-actions-ci-url]: https://github.com/expressjs/cors?query=workflow%3Aci [npm-image]: https://img.shields.io/npm/v/cors.svg -[npm-url]: https://npmjs.org/package/cors +[npm-url]: https://npmjs.com/package/cors diff --git a/_includes/readmes/serve-static.md b/_includes/readmes/serve-static.md index 70f01c3198..3ff1f1fa39 100644 --- a/_includes/readmes/serve-static.md +++ b/_includes/readmes/serve-static.md @@ -18,7 +18,7 @@ $ npm install serve-static ## API ```js -var serveStatic = require('serve-static') +const serveStatic = require('serve-static') ``` ### serveStatic(root, options) @@ -132,15 +132,15 @@ the arguments are: ### Serve files with vanilla node.js http server ```js -var finalhandler = require('finalhandler') -var http = require('http') -var serveStatic = require('serve-static') +const finalhandler = require('finalhandler') +const http = require('http') +const serveStatic = require('serve-static') // Serve up public/ftp folder -var serve = serveStatic('public/ftp', { index: ['index.html', 'index.htm'] }) +const serve = serveStatic('public/ftp', { index: ['index.html', 'index.htm'] }) // Create server -var server = http.createServer(function onRequest (req, res) { +const server = http.createServer((req, res) => { serve(req, res, finalhandler(req, res)) }) @@ -151,13 +151,13 @@ server.listen(3000) ### Serve all files as downloads ```js -var contentDisposition = require('content-disposition') -var finalhandler = require('finalhandler') -var http = require('http') -var serveStatic = require('serve-static') +const contentDisposition = require('content-disposition') +const finalhandler = require('finalhandler') +const http = require('http') +const serveStatic = require('serve-static') // Serve up public/ftp folder -var serve = serveStatic('public/ftp', { +const serve = serveStatic('public/ftp', { index: false, setHeaders: setHeaders }) @@ -168,7 +168,7 @@ function setHeaders (res, path) { } // Create server -var server = http.createServer(function onRequest (req, res) { +const server = http.createServer((req, res) => { serve(req, res, finalhandler(req, res)) }) @@ -183,10 +183,10 @@ server.listen(3000) This is a simple example of using Express. ```js -var express = require('express') -var serveStatic = require('serve-static') +const express = require('express') +const serveStatic = require('serve-static') -var app = express() +const app = express() app.use(serveStatic('public/ftp', { index: ['default.html', 'default.htm'] })) app.listen(3000) @@ -199,11 +199,11 @@ Files are searched for in `public-optimized/` first, then `public/` second as a fallback. ```js -var express = require('express') -var path = require('path') -var serveStatic = require('serve-static') +const express = require('express') +const path = require('path') +const serveStatic = require('serve-static') -var app = express() +const app = express() app.use(serveStatic(path.join(__dirname, 'public-optimized'))) app.use(serveStatic(path.join(__dirname, 'public'))) @@ -217,11 +217,11 @@ file. In this example, HTML files are not cached, while everything else is for 1 day. ```js -var express = require('express') -var path = require('path') -var serveStatic = require('serve-static') +const express = require('express') +const path = require('path') +const serveStatic = require('serve-static') -var app = express() +const app = express() app.use(serveStatic(path.join(__dirname, 'public'), { maxAge: '1d',