2015-02-10 21:48:55 +01:00
|
|
|
|
# Errors
|
|
|
|
|
|
2017-01-23 04:16:21 +01:00
|
|
|
|
<!--introduced_in=v4.0.0-->
|
2015-02-10 21:48:55 +01:00
|
|
|
|
<!--type=misc-->
|
|
|
|
|
|
2015-12-28 20:42:05 +01:00
|
|
|
|
Applications running in Node.js will generally experience four categories of
|
|
|
|
|
errors:
|
|
|
|
|
|
2019-09-13 06:22:29 +02:00
|
|
|
|
* Standard JavaScript errors such as {EvalError}, {SyntaxError}, {RangeError},
|
2018-06-04 21:16:23 +02:00
|
|
|
|
{ReferenceError}, {TypeError}, and {URIError}.
|
2019-09-13 06:22:29 +02:00
|
|
|
|
* System errors triggered by underlying operating system constraints such
|
2018-06-04 21:16:23 +02:00
|
|
|
|
as attempting to open a file that does not exist or attempting to send data
|
|
|
|
|
over a closed socket.
|
2019-09-13 06:22:29 +02:00
|
|
|
|
* User-specified errors triggered by application code.
|
|
|
|
|
* `AssertionError`s are a special class of error that can be triggered when
|
2015-12-28 20:42:05 +01:00
|
|
|
|
Node.js detects an exceptional logic violation that should never occur. These
|
|
|
|
|
are raised typically by the `assert` module.
|
|
|
|
|
|
|
|
|
|
All JavaScript and System errors raised by Node.js inherit from, or are
|
2016-02-20 01:07:00 +01:00
|
|
|
|
instances of, the standard JavaScript {Error} class and are guaranteed
|
2015-12-28 20:42:05 +01:00
|
|
|
|
to provide *at least* the properties available on that class.
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2015-11-04 17:37:27 +01:00
|
|
|
|
## Error Propagation and Interception
|
|
|
|
|
|
|
|
|
|
<!--type=misc-->
|
|
|
|
|
|
2015-12-28 20:42:05 +01:00
|
|
|
|
Node.js supports several mechanisms for propagating and handling errors that
|
|
|
|
|
occur while an application is running. How these errors are reported and
|
2018-04-29 19:46:41 +02:00
|
|
|
|
handled depends entirely on the type of `Error` and the style of the API that is
|
2015-12-28 20:42:05 +01:00
|
|
|
|
called.
|
|
|
|
|
|
|
|
|
|
All JavaScript errors are handled as exceptions that *immediately* generate
|
|
|
|
|
and throw an error using the standard JavaScript `throw` mechanism. These
|
2018-06-04 21:32:54 +02:00
|
|
|
|
are handled using the [`try…catch` construct][try-catch] provided by the
|
2017-02-10 17:51:50 +01:00
|
|
|
|
JavaScript language.
|
2015-12-28 20:42:05 +01:00
|
|
|
|
|
2016-01-17 18:39:07 +01:00
|
|
|
|
```js
|
2019-03-22 15:50:11 +01:00
|
|
|
|
// Throws with a ReferenceError because z is not defined.
|
2016-01-17 18:39:07 +01:00
|
|
|
|
try {
|
|
|
|
|
const m = 1;
|
|
|
|
|
const n = m + z;
|
|
|
|
|
} catch (err) {
|
|
|
|
|
// Handle the error here.
|
|
|
|
|
}
|
|
|
|
|
```
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
2015-12-28 20:42:05 +01:00
|
|
|
|
Any use of the JavaScript `throw` mechanism will raise an exception that
|
2018-06-04 21:32:54 +02:00
|
|
|
|
*must* be handled using `try…catch` or the Node.js process will exit
|
2015-12-28 20:42:05 +01:00
|
|
|
|
immediately.
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
2015-12-28 20:42:05 +01:00
|
|
|
|
With few exceptions, _Synchronous_ APIs (any blocking method that does not
|
|
|
|
|
accept a `callback` function, such as [`fs.readFileSync`][]), will use `throw`
|
|
|
|
|
to report errors.
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
2015-12-28 20:42:05 +01:00
|
|
|
|
Errors that occur within _Asynchronous APIs_ may be reported in multiple ways:
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
2019-09-13 06:22:29 +02:00
|
|
|
|
* Most asynchronous methods that accept a `callback` function will accept an
|
2015-12-28 20:42:05 +01:00
|
|
|
|
`Error` object passed as the first argument to that function. If that first
|
|
|
|
|
argument is not `null` and is an instance of `Error`, then an error occurred
|
|
|
|
|
that should be handled.
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
2017-04-22 00:50:52 +02:00
|
|
|
|
<!-- eslint-disable no-useless-return -->
|
2016-01-17 18:39:07 +01:00
|
|
|
|
```js
|
2015-12-28 20:42:05 +01:00
|
|
|
|
const fs = require('fs');
|
|
|
|
|
fs.readFile('a file that does not exist', (err, data) => {
|
|
|
|
|
if (err) {
|
|
|
|
|
console.error('There was an error reading the file!', err);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
// Otherwise handle the data
|
|
|
|
|
});
|
|
|
|
|
```
|
2019-08-29 15:28:03 +02:00
|
|
|
|
|
2019-09-13 06:22:29 +02:00
|
|
|
|
* When an asynchronous method is called on an object that is an
|
2017-11-07 13:09:49 +01:00
|
|
|
|
[`EventEmitter`][], errors can be routed to that object's `'error'` event.
|
2015-12-28 20:42:05 +01:00
|
|
|
|
|
2016-01-17 18:39:07 +01:00
|
|
|
|
```js
|
2015-12-28 20:42:05 +01:00
|
|
|
|
const net = require('net');
|
|
|
|
|
const connection = net.connect('localhost');
|
|
|
|
|
|
|
|
|
|
// Adding an 'error' event handler to a stream:
|
|
|
|
|
connection.on('error', (err) => {
|
|
|
|
|
// If the connection is reset by the server, or if it can't
|
|
|
|
|
// connect at all, or on any sort of error encountered by
|
|
|
|
|
// the connection, the error will be sent here.
|
|
|
|
|
console.error(err);
|
|
|
|
|
});
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
2015-12-28 20:42:05 +01:00
|
|
|
|
connection.pipe(process.stdout);
|
|
|
|
|
```
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
2019-09-13 06:22:29 +02:00
|
|
|
|
* A handful of typically asynchronous methods in the Node.js API may still
|
2015-12-28 20:42:05 +01:00
|
|
|
|
use the `throw` mechanism to raise exceptions that must be handled using
|
2018-06-04 21:32:54 +02:00
|
|
|
|
`try…catch`. There is no comprehensive list of such methods; please
|
2015-12-28 20:42:05 +01:00
|
|
|
|
refer to the documentation of each method to determine the appropriate
|
|
|
|
|
error handling mechanism required.
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
2015-12-28 20:42:05 +01:00
|
|
|
|
The use of the `'error'` event mechanism is most common for [stream-based][]
|
|
|
|
|
and [event emitter-based][] APIs, which themselves represent a series of
|
|
|
|
|
asynchronous operations over time (as opposed to a single operation that may
|
|
|
|
|
pass or fail).
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
2017-11-07 13:09:49 +01:00
|
|
|
|
For *all* [`EventEmitter`][] objects, if an `'error'` event handler is not
|
2015-12-28 20:42:05 +01:00
|
|
|
|
provided, the error will be thrown, causing the Node.js process to report an
|
2018-04-25 17:41:32 +02:00
|
|
|
|
uncaught exception and crash unless either: The [`domain`][domains] module is
|
2017-02-10 17:51:50 +01:00
|
|
|
|
used appropriately or a handler has been registered for the
|
2018-04-09 18:30:22 +02:00
|
|
|
|
[`'uncaughtException'`][] event.
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
2016-01-17 18:39:07 +01:00
|
|
|
|
```js
|
|
|
|
|
const EventEmitter = require('events');
|
|
|
|
|
const ee = new EventEmitter();
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
2016-01-17 18:39:07 +01:00
|
|
|
|
setImmediate(() => {
|
|
|
|
|
// This will crash the process because no 'error' event
|
|
|
|
|
// handler has been added.
|
|
|
|
|
ee.emit('error', new Error('This will crash'));
|
|
|
|
|
});
|
|
|
|
|
```
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
2018-06-04 21:32:54 +02:00
|
|
|
|
Errors generated in this way *cannot* be intercepted using `try…catch` as
|
2015-12-28 20:42:05 +01:00
|
|
|
|
they are thrown *after* the calling code has already exited.
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
2015-12-28 20:42:05 +01:00
|
|
|
|
Developers must refer to the documentation for each method to determine
|
|
|
|
|
exactly how errors raised by those methods are propagated.
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
2017-12-13 00:46:25 +01:00
|
|
|
|
### Error-first callbacks
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
|
|
|
|
<!--type=misc-->
|
|
|
|
|
|
2015-12-28 20:42:05 +01:00
|
|
|
|
Most asynchronous methods exposed by the Node.js core API follow an idiomatic
|
2018-07-07 22:53:24 +02:00
|
|
|
|
pattern referred to as an _error-first callback_. With this pattern, a callback
|
|
|
|
|
function is passed to the method as an argument. When the operation either
|
|
|
|
|
completes or an error is raised, the callback function is called with the
|
|
|
|
|
`Error` object (if any) passed as the first argument. If no error was raised,
|
|
|
|
|
the first argument will be passed as `null`.
|
2015-12-28 20:42:05 +01:00
|
|
|
|
|
2016-01-17 18:39:07 +01:00
|
|
|
|
```js
|
|
|
|
|
const fs = require('fs');
|
2015-12-28 20:42:05 +01:00
|
|
|
|
|
2017-12-13 00:46:25 +01:00
|
|
|
|
function errorFirstCallback(err, data) {
|
2017-02-26 16:49:25 +01:00
|
|
|
|
if (err) {
|
|
|
|
|
console.error('There was an error', err);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
console.log(data);
|
2016-01-17 18:39:07 +01:00
|
|
|
|
}
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
2017-12-13 00:46:25 +01:00
|
|
|
|
fs.readFile('/some/file/that/does-not-exist', errorFirstCallback);
|
|
|
|
|
fs.readFile('/some/file/that/does-exist', errorFirstCallback);
|
2016-01-17 18:39:07 +01:00
|
|
|
|
```
|
2015-12-28 20:42:05 +01:00
|
|
|
|
|
2018-06-04 21:32:54 +02:00
|
|
|
|
The JavaScript `try…catch` mechanism **cannot** be used to intercept errors
|
2018-04-02 07:38:48 +02:00
|
|
|
|
generated by asynchronous APIs. A common mistake for beginners is to try to
|
2017-12-13 00:46:25 +01:00
|
|
|
|
use `throw` inside an error-first callback:
|
2015-12-28 20:42:05 +01:00
|
|
|
|
|
2016-01-17 18:39:07 +01:00
|
|
|
|
```js
|
|
|
|
|
// THIS WILL NOT WORK:
|
|
|
|
|
const fs = require('fs');
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
fs.readFile('/some/file/that/does-not-exist', (err, data) => {
|
2019-03-07 01:03:53 +01:00
|
|
|
|
// Mistaken assumption: throwing here...
|
2016-01-17 18:39:07 +01:00
|
|
|
|
if (err) {
|
|
|
|
|
throw err;
|
2015-12-28 20:42:05 +01:00
|
|
|
|
}
|
2016-01-17 18:39:07 +01:00
|
|
|
|
});
|
2017-02-26 16:49:25 +01:00
|
|
|
|
} catch (err) {
|
2016-01-17 18:39:07 +01:00
|
|
|
|
// This will not catch the throw!
|
2017-02-26 16:49:25 +01:00
|
|
|
|
console.error(err);
|
2016-01-17 18:39:07 +01:00
|
|
|
|
}
|
|
|
|
|
```
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2015-12-28 20:42:05 +01:00
|
|
|
|
This will not work because the callback function passed to `fs.readFile()` is
|
|
|
|
|
called asynchronously. By the time the callback has been called, the
|
2019-06-30 17:42:52 +02:00
|
|
|
|
surrounding code, including the `try…catch` block, will have already exited.
|
|
|
|
|
Throwing an error inside the callback **can crash the Node.js process** in most
|
|
|
|
|
cases. If [domains][] are enabled, or a handler has been registered with
|
|
|
|
|
`process.on('uncaughtException')`, such errors can be intercepted.
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2019-12-24 02:38:09 +01:00
|
|
|
|
## Class: `Error`
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
|
|
|
|
<!--type=class-->
|
|
|
|
|
|
2019-08-25 03:35:50 +02:00
|
|
|
|
A generic JavaScript {Error} object that does not denote any specific
|
2015-12-28 20:42:05 +01:00
|
|
|
|
circumstance of why the error occurred. `Error` objects capture a "stack trace"
|
|
|
|
|
detailing the point in the code at which the `Error` was instantiated, and may
|
|
|
|
|
provide a text description of the error.
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2015-12-28 20:42:05 +01:00
|
|
|
|
All errors generated by Node.js, including all System and JavaScript errors,
|
|
|
|
|
will either be instances of, or inherit from, the `Error` class.
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `new Error(message)`
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2017-02-04 16:15:33 +01:00
|
|
|
|
* `message` {string}
|
2017-01-24 16:49:53 +01:00
|
|
|
|
|
2015-12-28 20:42:05 +01:00
|
|
|
|
Creates a new `Error` object and sets the `error.message` property to the
|
|
|
|
|
provided text message. If an object is passed as `message`, the text message
|
|
|
|
|
is generated by calling `message.toString()`. The `error.stack` property will
|
|
|
|
|
represent the point in the code at which `new Error()` was called. Stack traces
|
|
|
|
|
are dependent on [V8's stack trace API][]. Stack traces extend only to either
|
2018-04-02 07:38:48 +02:00
|
|
|
|
(a) the beginning of *synchronous code execution*, or (b) the number of frames
|
2015-12-28 20:42:05 +01:00
|
|
|
|
given by the property `Error.stackTraceLimit`, whichever is smaller.
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `Error.captureStackTrace(targetObject[, constructorOpt])`
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
2017-01-24 16:49:53 +01:00
|
|
|
|
* `targetObject` {Object}
|
|
|
|
|
* `constructorOpt` {Function}
|
|
|
|
|
|
2015-11-04 17:37:27 +01:00
|
|
|
|
Creates a `.stack` property on `targetObject`, which when accessed returns
|
2015-12-28 20:42:05 +01:00
|
|
|
|
a string representing the location in the code at which
|
|
|
|
|
`Error.captureStackTrace()` was called.
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
2016-01-17 18:39:07 +01:00
|
|
|
|
```js
|
|
|
|
|
const myObject = {};
|
|
|
|
|
Error.captureStackTrace(myObject);
|
2019-03-07 01:03:53 +01:00
|
|
|
|
myObject.stack; // Similar to `new Error().stack`
|
2016-01-17 18:39:07 +01:00
|
|
|
|
```
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
2018-02-12 08:31:55 +01:00
|
|
|
|
The first line of the trace will be prefixed with
|
|
|
|
|
`${myObject.name}: ${myObject.message}`.
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
2015-12-28 20:42:05 +01:00
|
|
|
|
The optional `constructorOpt` argument accepts a function. If given, all frames
|
|
|
|
|
above `constructorOpt`, including `constructorOpt`, will be omitted from the
|
|
|
|
|
generated stack trace.
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
2015-12-28 20:42:05 +01:00
|
|
|
|
The `constructorOpt` argument is useful for hiding implementation
|
|
|
|
|
details of error generation from an end user. For instance:
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
2016-01-17 18:39:07 +01:00
|
|
|
|
```js
|
|
|
|
|
function MyError() {
|
|
|
|
|
Error.captureStackTrace(this, MyError);
|
|
|
|
|
}
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
2016-01-17 18:39:07 +01:00
|
|
|
|
// Without passing MyError to captureStackTrace, the MyError
|
2016-05-17 15:40:28 +02:00
|
|
|
|
// frame would show up in the .stack property. By passing
|
2017-05-11 06:51:05 +02:00
|
|
|
|
// the constructor, we omit that frame, and retain all frames below it.
|
2017-02-26 16:49:25 +01:00
|
|
|
|
new MyError().stack;
|
2016-01-17 18:39:07 +01:00
|
|
|
|
```
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `Error.stackTraceLimit`
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
2017-03-05 18:03:39 +01:00
|
|
|
|
* {number}
|
2017-01-24 16:49:53 +01:00
|
|
|
|
|
2015-12-28 20:42:05 +01:00
|
|
|
|
The `Error.stackTraceLimit` property specifies the number of stack frames
|
|
|
|
|
collected by a stack trace (whether generated by `new Error().stack` or
|
|
|
|
|
`Error.captureStackTrace(obj)`).
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
2015-12-28 20:42:05 +01:00
|
|
|
|
The default value is `10` but may be set to any valid JavaScript number. Changes
|
|
|
|
|
will affect any stack trace captured *after* the value has been changed.
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
2015-12-28 20:42:05 +01:00
|
|
|
|
If set to a non-number value, or set to a negative number, stack traces will
|
|
|
|
|
not capture any frames.
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `error.code`
|
2017-02-10 17:51:50 +01:00
|
|
|
|
|
|
|
|
|
* {string}
|
|
|
|
|
|
|
|
|
|
The `error.code` property is a string label that identifies the kind of error.
|
2018-11-07 18:36:57 +01:00
|
|
|
|
`error.code` is the most stable way to identify an error. It will only change
|
|
|
|
|
between major versions of Node.js. In contrast, `error.message` strings may
|
|
|
|
|
change between any versions of Node.js. See [Node.js Error Codes][] for details
|
|
|
|
|
about specific codes.
|
2017-02-10 17:51:50 +01:00
|
|
|
|
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `error.message`
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2017-03-05 18:03:39 +01:00
|
|
|
|
* {string}
|
2017-01-24 16:49:53 +01:00
|
|
|
|
|
2017-02-10 17:51:50 +01:00
|
|
|
|
The `error.message` property is the string description of the error as set by
|
|
|
|
|
calling `new Error(message)`. The `message` passed to the constructor will also
|
|
|
|
|
appear in the first line of the stack trace of the `Error`, however changing
|
|
|
|
|
this property after the `Error` object is created *may not* change the first
|
|
|
|
|
line of the stack trace (for example, when `error.stack` is read before this
|
|
|
|
|
property is changed).
|
2015-12-28 20:42:05 +01:00
|
|
|
|
|
2016-01-17 18:39:07 +01:00
|
|
|
|
```js
|
|
|
|
|
const err = new Error('The message');
|
2017-02-26 16:49:25 +01:00
|
|
|
|
console.error(err.message);
|
2016-11-08 21:04:57 +01:00
|
|
|
|
// Prints: The message
|
2016-01-17 18:39:07 +01:00
|
|
|
|
```
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `error.stack`
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2017-03-05 18:03:39 +01:00
|
|
|
|
* {string}
|
2017-01-24 16:49:53 +01:00
|
|
|
|
|
|
|
|
|
The `error.stack` property is a string describing the point in the code at which
|
|
|
|
|
the `Error` was instantiated.
|
2015-12-28 20:42:05 +01:00
|
|
|
|
|
2016-07-09 07:13:09 +02:00
|
|
|
|
```txt
|
2016-01-17 18:39:07 +01:00
|
|
|
|
Error: Things keep happening!
|
|
|
|
|
at /home/gbusey/file.js:525:2
|
|
|
|
|
at Frobnicator.refrobulate (/home/gbusey/business-logic.js:424:21)
|
|
|
|
|
at Actor.<anonymous> (/home/gbusey/actors.js:400:8)
|
|
|
|
|
at increaseSynergy (/home/gbusey/actors.js:701:6)
|
|
|
|
|
```
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2015-12-28 20:42:05 +01:00
|
|
|
|
The first line is formatted as `<error class name>: <error message>`, and
|
|
|
|
|
is followed by a series of stack frames (each line beginning with "at ").
|
|
|
|
|
Each frame describes a call site within the code that lead to the error being
|
|
|
|
|
generated. V8 attempts to display a name for each function (by variable name,
|
|
|
|
|
function name, or object method name), but occasionally it will not be able to
|
|
|
|
|
find a suitable name. If V8 cannot determine a name for the function, only
|
|
|
|
|
location information will be displayed for that frame. Otherwise, the
|
|
|
|
|
determined function name will be displayed with location information appended
|
|
|
|
|
in parentheses.
|
|
|
|
|
|
2017-12-28 04:21:06 +01:00
|
|
|
|
Frames are only generated for JavaScript functions. If, for example, execution
|
|
|
|
|
synchronously passes through a C++ addon function called `cheetahify` which
|
|
|
|
|
itself calls a JavaScript function, the frame representing the `cheetahify` call
|
|
|
|
|
will not be present in the stack traces:
|
2015-12-28 20:42:05 +01:00
|
|
|
|
|
2016-01-17 18:39:07 +01:00
|
|
|
|
```js
|
|
|
|
|
const cheetahify = require('./native-binding.node');
|
2015-12-28 20:42:05 +01:00
|
|
|
|
|
2016-01-17 18:39:07 +01:00
|
|
|
|
function makeFaster() {
|
2019-03-07 01:03:53 +01:00
|
|
|
|
// `cheetahify()` *synchronously* calls speedy.
|
2016-01-17 18:39:07 +01:00
|
|
|
|
cheetahify(function speedy() {
|
|
|
|
|
throw new Error('oh no!');
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
2017-06-27 22:32:32 +02:00
|
|
|
|
makeFaster();
|
|
|
|
|
// will throw:
|
|
|
|
|
// /home/gbusey/file.js:6
|
|
|
|
|
// throw new Error('oh no!');
|
|
|
|
|
// ^
|
|
|
|
|
// Error: oh no!
|
|
|
|
|
// at speedy (/home/gbusey/file.js:6:11)
|
|
|
|
|
// at makeFaster (/home/gbusey/file.js:5:3)
|
|
|
|
|
// at Object.<anonymous> (/home/gbusey/file.js:10:1)
|
|
|
|
|
// at Module._compile (module.js:456:26)
|
|
|
|
|
// at Object.Module._extensions..js (module.js:474:10)
|
|
|
|
|
// at Module.load (module.js:356:32)
|
|
|
|
|
// at Function.Module._load (module.js:312:12)
|
|
|
|
|
// at Function.Module.runMain (module.js:497:10)
|
|
|
|
|
// at startup (node.js:119:16)
|
|
|
|
|
// at node.js:906:3
|
2016-01-17 18:39:07 +01:00
|
|
|
|
```
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2015-08-13 18:14:34 +02:00
|
|
|
|
The location information will be one of:
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
|
|
|
|
* `native`, if the frame represents a call internal to V8 (as in `[].forEach`).
|
2015-12-28 20:42:05 +01:00
|
|
|
|
* `plain-filename.js:line:column`, if the frame represents a call internal
|
|
|
|
|
to Node.js.
|
|
|
|
|
* `/absolute/path/to/file.js:line:column`, if the frame represents a call in
|
|
|
|
|
a user program, or its dependencies.
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2015-12-28 20:42:05 +01:00
|
|
|
|
The string representing the stack trace is lazily generated when the
|
|
|
|
|
`error.stack` property is **accessed**.
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
|
|
|
|
The number of frames captured by the stack trace is bounded by the smaller of
|
|
|
|
|
`Error.stackTraceLimit` or the number of available frames on the current event
|
|
|
|
|
loop tick.
|
|
|
|
|
|
2019-12-24 02:38:09 +01:00
|
|
|
|
## Class: `AssertionError`
|
2017-07-16 08:02:04 +02:00
|
|
|
|
|
2019-08-25 03:35:50 +02:00
|
|
|
|
* Extends: {errors.Error}
|
|
|
|
|
|
|
|
|
|
Indicates the failure of an assertion. For details, see
|
|
|
|
|
[`Class: assert.AssertionError`][].
|
2017-07-16 08:02:04 +02:00
|
|
|
|
|
2019-12-24 02:38:09 +01:00
|
|
|
|
## Class: `RangeError`
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2019-08-25 03:35:50 +02:00
|
|
|
|
* Extends: {errors.Error}
|
|
|
|
|
|
|
|
|
|
Indicates that a provided argument was not within the set or range of
|
|
|
|
|
acceptable values for a function; whether that is a numeric range, or
|
|
|
|
|
outside the set of options for a given function parameter.
|
2015-12-28 20:42:05 +01:00
|
|
|
|
|
2016-01-17 18:39:07 +01:00
|
|
|
|
```js
|
|
|
|
|
require('net').connect(-1);
|
2018-12-03 17:15:45 +01:00
|
|
|
|
// Throws "RangeError: "port" option should be >= 0 and < 65536: -1"
|
2016-01-17 18:39:07 +01:00
|
|
|
|
```
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2015-12-28 20:42:05 +01:00
|
|
|
|
Node.js will generate and throw `RangeError` instances *immediately* as a form
|
2015-08-13 18:14:34 +02:00
|
|
|
|
of argument validation.
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2019-12-24 02:38:09 +01:00
|
|
|
|
## Class: `ReferenceError`
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2019-08-25 03:35:50 +02:00
|
|
|
|
* Extends: {errors.Error}
|
|
|
|
|
|
|
|
|
|
Indicates that an attempt is being made to access a variable that is not
|
|
|
|
|
defined. Such errors commonly indicate typos in code, or an otherwise broken
|
|
|
|
|
program.
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2015-12-28 20:42:05 +01:00
|
|
|
|
While client code may generate and propagate these errors, in practice, only V8
|
|
|
|
|
will do so.
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2016-01-17 18:39:07 +01:00
|
|
|
|
```js
|
|
|
|
|
doesNotExist;
|
2018-12-03 17:15:45 +01:00
|
|
|
|
// Throws ReferenceError, doesNotExist is not a variable in this program.
|
2016-01-17 18:39:07 +01:00
|
|
|
|
```
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2015-12-28 20:42:05 +01:00
|
|
|
|
Unless an application is dynamically generating and running code,
|
|
|
|
|
`ReferenceError` instances should always be considered a bug in the code
|
|
|
|
|
or its dependencies.
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2019-12-24 02:38:09 +01:00
|
|
|
|
## Class: `SyntaxError`
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2019-08-25 03:35:50 +02:00
|
|
|
|
* Extends: {errors.Error}
|
|
|
|
|
|
|
|
|
|
Indicates that a program is not valid JavaScript. These errors may only be
|
|
|
|
|
generated and propagated as a result of code evaluation. Code evaluation may
|
|
|
|
|
happen as a result of `eval`, `Function`, `require`, or [vm][]. These errors
|
|
|
|
|
are almost always indicative of a broken program.
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2016-01-17 18:39:07 +01:00
|
|
|
|
```js
|
|
|
|
|
try {
|
|
|
|
|
require('vm').runInThisContext('binary ! isNotOk');
|
2017-02-26 16:49:25 +01:00
|
|
|
|
} catch (err) {
|
2019-03-22 03:44:26 +01:00
|
|
|
|
// 'err' will be a SyntaxError.
|
2016-01-17 18:39:07 +01:00
|
|
|
|
}
|
|
|
|
|
```
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2015-12-28 20:42:05 +01:00
|
|
|
|
`SyntaxError` instances are unrecoverable in the context that created them –
|
|
|
|
|
they may only be caught by other contexts.
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2019-12-24 02:38:09 +01:00
|
|
|
|
## Class: `SystemError`
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2019-08-25 03:35:50 +02:00
|
|
|
|
* Extends: {errors.Error}
|
|
|
|
|
|
2018-11-04 20:59:14 +01:00
|
|
|
|
Node.js generates system errors when exceptions occur within its runtime
|
|
|
|
|
environment. These usually occur when an application violates an operating
|
|
|
|
|
system constraint. For example, a system error will occur if an application
|
|
|
|
|
attempts to read a file that does not exist.
|
2015-12-28 20:42:05 +01:00
|
|
|
|
|
2018-11-04 20:59:14 +01:00
|
|
|
|
* `address` {string} If present, the address to which a network connection
|
|
|
|
|
failed
|
|
|
|
|
* `code` {string} The string error code
|
|
|
|
|
* `dest` {string} If present, the file path destination when reporting a file
|
|
|
|
|
system error
|
2019-06-09 15:04:51 +02:00
|
|
|
|
* `errno` {number} The system-provided error number
|
2018-11-04 20:59:14 +01:00
|
|
|
|
* `info` {Object} If present, extra details about the error condition
|
|
|
|
|
* `message` {string} A system-provided human-readable description of the error
|
|
|
|
|
* `path` {string} If present, the file path when reporting a file system error
|
|
|
|
|
* `port` {number} If present, the network connection port that is not available
|
|
|
|
|
* `syscall` {string} The name of the system call that triggered the error
|
2017-10-28 01:25:14 +02:00
|
|
|
|
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `error.address`
|
2017-10-28 01:25:14 +02:00
|
|
|
|
|
2018-11-04 20:59:14 +01:00
|
|
|
|
* {string}
|
2017-10-28 01:25:14 +02:00
|
|
|
|
|
2018-11-04 20:59:14 +01:00
|
|
|
|
If present, `error.address` is a string describing the address to which a
|
|
|
|
|
network connection failed.
|
2017-10-28 01:25:14 +02:00
|
|
|
|
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `error.code`
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2017-03-05 18:03:39 +01:00
|
|
|
|
* {string}
|
2017-01-24 16:49:53 +01:00
|
|
|
|
|
2018-11-04 20:59:14 +01:00
|
|
|
|
The `error.code` property is a string representing the error code.
|
|
|
|
|
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `error.dest`
|
2018-11-04 20:59:14 +01:00
|
|
|
|
|
|
|
|
|
* {string}
|
|
|
|
|
|
|
|
|
|
If present, `error.dest` is the file path destination when reporting a file
|
|
|
|
|
system error.
|
2015-12-28 20:42:05 +01:00
|
|
|
|
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `error.errno`
|
2016-10-10 18:28:49 +02:00
|
|
|
|
|
2019-06-09 15:04:51 +02:00
|
|
|
|
* {number}
|
|
|
|
|
|
|
|
|
|
The `error.errno` property is a negative number which corresponds
|
2019-10-02 06:31:57 +02:00
|
|
|
|
to the error code defined in [`libuv Error handling`][].
|
2019-06-09 15:04:51 +02:00
|
|
|
|
|
|
|
|
|
On Windows the error number provided by the system will be normalized by libuv.
|
2017-01-24 16:49:53 +01:00
|
|
|
|
|
2019-06-09 15:04:51 +02:00
|
|
|
|
To get the string representation of the error code, use
|
2019-10-02 06:31:57 +02:00
|
|
|
|
[`util.getSystemErrorName(error.errno)`][].
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `error.info`
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
2018-11-04 20:59:14 +01:00
|
|
|
|
* {Object}
|
2017-01-24 16:49:53 +01:00
|
|
|
|
|
2018-11-04 20:59:14 +01:00
|
|
|
|
If present, `error.info` is an object with details about the error condition.
|
2017-01-24 16:49:53 +01:00
|
|
|
|
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `error.message`
|
2017-01-24 16:49:53 +01:00
|
|
|
|
|
2017-03-05 18:03:39 +01:00
|
|
|
|
* {string}
|
2017-01-24 16:49:53 +01:00
|
|
|
|
|
2018-11-04 20:59:14 +01:00
|
|
|
|
`error.message` is a system-provided human-readable description of the error.
|
2017-01-24 16:49:53 +01:00
|
|
|
|
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `error.path`
|
2017-01-24 16:49:53 +01:00
|
|
|
|
|
2017-03-05 18:03:39 +01:00
|
|
|
|
* {string}
|
2017-01-24 16:49:53 +01:00
|
|
|
|
|
2018-11-04 20:59:14 +01:00
|
|
|
|
If present, `error.path` is a string containing a relevant invalid pathname.
|
2017-01-24 16:49:53 +01:00
|
|
|
|
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `error.port`
|
2017-01-24 16:49:53 +01:00
|
|
|
|
|
2017-03-05 18:03:39 +01:00
|
|
|
|
* {number}
|
2017-01-24 16:49:53 +01:00
|
|
|
|
|
2018-11-04 20:59:14 +01:00
|
|
|
|
If present, `error.port` is the network connection port that is not available.
|
|
|
|
|
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `error.syscall`
|
2018-11-04 20:59:14 +01:00
|
|
|
|
|
|
|
|
|
* {string}
|
|
|
|
|
|
|
|
|
|
The `error.syscall` property is a string describing the [syscall][] that failed.
|
2015-11-04 17:37:27 +01:00
|
|
|
|
|
2015-02-10 21:48:55 +01:00
|
|
|
|
### Common System Errors
|
|
|
|
|
|
2018-11-04 20:59:14 +01:00
|
|
|
|
This is a list of system errors commonly-encountered when writing a Node.js
|
|
|
|
|
program. For a comprehensive list, see the [`errno`(3) man page][].
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2019-09-13 06:22:29 +02:00
|
|
|
|
* `EACCES` (Permission denied): An attempt was made to access a file in a way
|
2015-12-28 20:42:05 +01:00
|
|
|
|
forbidden by its file access permissions.
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2019-09-13 06:22:29 +02:00
|
|
|
|
* `EADDRINUSE` (Address already in use): An attempt to bind a server
|
2015-12-28 20:42:05 +01:00
|
|
|
|
([`net`][], [`http`][], or [`https`][]) to a local address failed due to
|
|
|
|
|
another server on the local system already occupying that address.
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2019-09-13 06:22:29 +02:00
|
|
|
|
* `ECONNREFUSED` (Connection refused): No connection could be made because the
|
2015-12-28 20:42:05 +01:00
|
|
|
|
target machine actively refused it. This usually results from trying to
|
|
|
|
|
connect to a service that is inactive on the foreign host.
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2019-09-13 06:22:29 +02:00
|
|
|
|
* `ECONNRESET` (Connection reset by peer): A connection was forcibly closed by
|
2015-12-28 20:42:05 +01:00
|
|
|
|
a peer. This normally results from a loss of the connection on the remote
|
|
|
|
|
socket due to a timeout or reboot. Commonly encountered via the [`http`][]
|
|
|
|
|
and [`net`][] modules.
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2019-09-13 06:22:29 +02:00
|
|
|
|
* `EEXIST` (File exists): An existing file was the target of an operation that
|
2015-12-28 20:42:05 +01:00
|
|
|
|
required that the target not exist.
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2019-09-13 06:22:29 +02:00
|
|
|
|
* `EISDIR` (Is a directory): An operation expected a file, but the given
|
2015-12-28 20:42:05 +01:00
|
|
|
|
pathname was a directory.
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2019-09-13 06:22:29 +02:00
|
|
|
|
* `EMFILE` (Too many open files in system): Maximum number of
|
2015-12-28 20:42:05 +01:00
|
|
|
|
[file descriptors][] allowable on the system has been reached, and
|
|
|
|
|
requests for another descriptor cannot be fulfilled until at least one
|
|
|
|
|
has been closed. This is encountered when opening many files at once in
|
2017-03-29 01:46:10 +02:00
|
|
|
|
parallel, especially on systems (in particular, macOS) where there is a low
|
2015-12-28 20:42:05 +01:00
|
|
|
|
file descriptor limit for processes. To remedy a low limit, run
|
|
|
|
|
`ulimit -n 2048` in the same shell that will run the Node.js process.
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2019-09-13 06:22:29 +02:00
|
|
|
|
* `ENOENT` (No such file or directory): Commonly raised by [`fs`][] operations
|
2020-03-04 06:23:59 +01:00
|
|
|
|
to indicate that a component of the specified pathname does not exist. No
|
2015-12-28 20:42:05 +01:00
|
|
|
|
entity (file or directory) could be found by the given path.
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2019-09-13 06:22:29 +02:00
|
|
|
|
* `ENOTDIR` (Not a directory): A component of the given pathname existed, but
|
2015-12-28 20:42:05 +01:00
|
|
|
|
was not a directory as expected. Commonly raised by [`fs.readdir`][].
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2019-09-13 06:22:29 +02:00
|
|
|
|
* `ENOTEMPTY` (Directory not empty): A directory with entries was the target
|
2020-03-04 06:23:59 +01:00
|
|
|
|
of an operation that requires an empty directory, usually [`fs.unlink`][].
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2019-09-13 06:22:29 +02:00
|
|
|
|
* `ENOTFOUND` (DNS lookup failed): Indicates a DNS failure of either
|
2019-03-07 15:13:40 +01:00
|
|
|
|
`EAI_NODATA` or `EAI_NONAME`. This is not a standard POSIX error.
|
|
|
|
|
|
2019-09-13 06:22:29 +02:00
|
|
|
|
* `EPERM` (Operation not permitted): An attempt was made to perform an
|
2015-12-28 20:42:05 +01:00
|
|
|
|
operation that requires elevated privileges.
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2019-09-13 06:22:29 +02:00
|
|
|
|
* `EPIPE` (Broken pipe): A write on a pipe, socket, or FIFO for which there is
|
2015-12-28 20:42:05 +01:00
|
|
|
|
no process to read the data. Commonly encountered at the [`net`][] and
|
|
|
|
|
[`http`][] layers, indicative that the remote side of the stream being
|
|
|
|
|
written to has been closed.
|
2015-02-10 21:48:55 +01:00
|
|
|
|
|
2019-09-13 06:22:29 +02:00
|
|
|
|
* `ETIMEDOUT` (Operation timed out): A connect or send request failed because
|
2015-12-28 20:42:05 +01:00
|
|
|
|
the connected party did not properly respond after a period of time. Usually
|
2020-03-04 06:23:59 +01:00
|
|
|
|
encountered by [`http`][] or [`net`][]. Often a sign that a `socket.end()`
|
2015-12-28 20:42:05 +01:00
|
|
|
|
was not properly called.
|
2017-02-10 19:18:19 +01:00
|
|
|
|
|
2019-12-24 02:38:09 +01:00
|
|
|
|
## Class: `TypeError`
|
2019-04-03 20:40:22 +02:00
|
|
|
|
|
2019-08-25 03:35:50 +02:00
|
|
|
|
* Extends {errors.Error}
|
|
|
|
|
|
|
|
|
|
Indicates that a provided argument is not an allowable type. For example,
|
|
|
|
|
passing a function to a parameter which expects a string would be considered
|
|
|
|
|
a `TypeError`.
|
2019-04-03 20:40:22 +02:00
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
require('url').parse(() => { });
|
|
|
|
|
// Throws TypeError, since it expected a string.
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Node.js will generate and throw `TypeError` instances *immediately* as a form
|
|
|
|
|
of argument validation.
|
|
|
|
|
|
|
|
|
|
## Exceptions vs. Errors
|
|
|
|
|
|
|
|
|
|
<!--type=misc-->
|
|
|
|
|
|
|
|
|
|
A JavaScript exception is a value that is thrown as a result of an invalid
|
|
|
|
|
operation or as the target of a `throw` statement. While it is not required
|
|
|
|
|
that these values are instances of `Error` or classes which inherit from
|
|
|
|
|
`Error`, all exceptions thrown by Node.js or the JavaScript runtime *will* be
|
|
|
|
|
instances of `Error`.
|
|
|
|
|
|
|
|
|
|
Some exceptions are *unrecoverable* at the JavaScript layer. Such exceptions
|
|
|
|
|
will *always* cause the Node.js process to crash. Examples include `assert()`
|
|
|
|
|
checks or `abort()` calls in the C++ layer.
|
|
|
|
|
|
2019-03-27 20:10:21 +01:00
|
|
|
|
## OpenSSL Errors
|
|
|
|
|
|
|
|
|
|
Errors originating in `crypto` or `tls` are of class `Error`, and in addition to
|
|
|
|
|
the standard `.code` and `.message` properties, may have some additional
|
|
|
|
|
OpenSSL-specific properties.
|
|
|
|
|
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `error.opensslErrorStack`
|
2019-03-27 20:10:21 +01:00
|
|
|
|
|
|
|
|
|
An array of errors that can give context to where in the OpenSSL library an
|
|
|
|
|
error originates from.
|
|
|
|
|
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `error.function`
|
2019-03-27 20:10:21 +01:00
|
|
|
|
|
|
|
|
|
The OpenSSL function the error originates in.
|
|
|
|
|
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `error.library`
|
2019-03-27 20:10:21 +01:00
|
|
|
|
|
|
|
|
|
The OpenSSL library the error originates in.
|
|
|
|
|
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `error.reason`
|
2019-03-27 20:10:21 +01:00
|
|
|
|
|
|
|
|
|
A human-readable string describing the reason for the error.
|
|
|
|
|
|
2017-02-10 17:51:50 +01:00
|
|
|
|
<a id="nodejs-error-codes"></a>
|
|
|
|
|
## Node.js Error Codes
|
|
|
|
|
|
2018-04-07 14:22:29 +02:00
|
|
|
|
<a id="ERR_AMBIGUOUS_ARGUMENT"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_AMBIGUOUS_ARGUMENT`
|
2018-04-07 14:22:29 +02:00
|
|
|
|
|
2018-08-27 03:20:05 +02:00
|
|
|
|
A function argument is being used in a way that suggests that the function
|
|
|
|
|
signature may be misunderstood. This is thrown by the `assert` module when the
|
|
|
|
|
`message` parameter in `assert.throws(block, message)` matches the error message
|
|
|
|
|
thrown by `block` because that usage suggests that the user believes `message`
|
|
|
|
|
is the expected message rather than the message the `AssertionError` will
|
|
|
|
|
display if `block` does not throw.
|
2018-04-07 14:22:29 +02:00
|
|
|
|
|
2017-04-21 20:54:58 +02:00
|
|
|
|
<a id="ERR_ARG_NOT_ITERABLE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_ARG_NOT_ITERABLE`
|
2017-04-21 20:54:58 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An iterable argument (i.e. a value that works with `for...of` loops) was
|
|
|
|
|
required, but not provided to a Node.js API.
|
2017-04-21 20:54:58 +02:00
|
|
|
|
|
2017-06-21 20:14:45 +02:00
|
|
|
|
<a id="ERR_ASSERTION"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_ASSERTION`
|
2017-06-21 20:14:45 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
A special type of error that can be triggered whenever Node.js detects an
|
2017-06-21 20:14:45 +02:00
|
|
|
|
exceptional logic violation that should never occur. These are raised typically
|
|
|
|
|
by the `assert` module.
|
|
|
|
|
|
2017-09-03 10:27:44 +02:00
|
|
|
|
<a id="ERR_ASYNC_CALLBACK"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_ASYNC_CALLBACK`
|
2017-09-03 10:27:44 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An attempt was made to register something that is not a function as an
|
|
|
|
|
`AsyncHooks` callback.
|
2017-09-03 10:27:44 +02:00
|
|
|
|
|
|
|
|
|
<a id="ERR_ASYNC_TYPE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_ASYNC_TYPE`
|
2017-09-03 10:27:44 +02:00
|
|
|
|
|
2019-06-20 21:55:29 +02:00
|
|
|
|
The type of an asynchronous resource was invalid. Users are also able
|
2017-11-09 19:10:37 +01:00
|
|
|
|
to define their own types if using the public embedder API.
|
2017-09-03 10:27:44 +02:00
|
|
|
|
|
2018-12-10 00:06:50 +01:00
|
|
|
|
<a id="ERR_BROTLI_COMPRESSION_FAILED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_BROTLI_COMPRESSION_FAILED`
|
2018-12-10 00:06:50 +01:00
|
|
|
|
|
|
|
|
|
Data passed to a Brotli stream was not successfully compressed.
|
|
|
|
|
|
2018-11-27 02:16:34 +01:00
|
|
|
|
<a id="ERR_BROTLI_INVALID_PARAM"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_BROTLI_INVALID_PARAM`
|
2018-11-27 02:16:34 +01:00
|
|
|
|
|
|
|
|
|
An invalid parameter key was passed during construction of a Brotli stream.
|
|
|
|
|
|
2018-10-28 15:59:20 +01:00
|
|
|
|
<a id="ERR_BUFFER_CONTEXT_NOT_AVAILABLE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_BUFFER_CONTEXT_NOT_AVAILABLE`
|
2018-10-28 15:59:20 +01:00
|
|
|
|
|
|
|
|
|
An attempt was made to create a Node.js `Buffer` instance from addon or embedder
|
|
|
|
|
code, while in a JS engine Context that is not associated with a Node.js
|
|
|
|
|
instance. The data passed to the `Buffer` method will have been released
|
|
|
|
|
by the time the method returns.
|
|
|
|
|
|
|
|
|
|
When encountering this error, a possible alternative to creating a `Buffer`
|
|
|
|
|
instance is to create a normal `Uint8Array`, which only differs in the
|
|
|
|
|
prototype of the resulting object. `Uint8Array`s are generally accepted in all
|
|
|
|
|
Node.js core APIs where `Buffer`s are; they are available in all Contexts.
|
|
|
|
|
|
2017-06-29 05:58:39 +02:00
|
|
|
|
<a id="ERR_BUFFER_OUT_OF_BOUNDS"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_BUFFER_OUT_OF_BOUNDS`
|
2017-06-29 05:58:39 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An operation outside the bounds of a `Buffer` was attempted.
|
2017-06-29 05:58:39 +02:00
|
|
|
|
|
2017-09-26 01:48:57 +02:00
|
|
|
|
<a id="ERR_BUFFER_TOO_LARGE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_BUFFER_TOO_LARGE`
|
2017-09-26 01:48:57 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An attempt has been made to create a `Buffer` larger than the maximum allowed
|
|
|
|
|
size.
|
2017-09-26 01:48:57 +02:00
|
|
|
|
|
2017-10-27 07:04:07 +02:00
|
|
|
|
<a id="ERR_CANNOT_WATCH_SIGINT"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_CANNOT_WATCH_SIGINT`
|
2017-10-27 07:04:07 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
Node.js was unable to watch for the `SIGINT` signal.
|
2017-10-27 07:04:07 +02:00
|
|
|
|
|
2017-02-13 22:03:35 +01:00
|
|
|
|
<a id="ERR_CHILD_CLOSED_BEFORE_REPLY"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_CHILD_CLOSED_BEFORE_REPLY`
|
2017-02-13 22:03:35 +01:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
A child process was closed before the parent received a reply.
|
2017-02-13 22:03:35 +01:00
|
|
|
|
|
2017-08-24 00:20:54 +02:00
|
|
|
|
<a id="ERR_CHILD_PROCESS_IPC_REQUIRED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_CHILD_PROCESS_IPC_REQUIRED`
|
2017-08-24 00:20:54 +02:00
|
|
|
|
|
|
|
|
|
Used when a child process is being forked without specifying an IPC channel.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_CHILD_PROCESS_STDIO_MAXBUFFER"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_CHILD_PROCESS_STDIO_MAXBUFFER`
|
2017-08-24 00:20:54 +02:00
|
|
|
|
|
|
|
|
|
Used when the main process is trying to read data from the child process's
|
2018-06-04 21:32:54 +02:00
|
|
|
|
STDERR/STDOUT, and the data's length is longer than the `maxBuffer` option.
|
2017-08-24 00:20:54 +02:00
|
|
|
|
|
2017-02-13 17:28:51 +01:00
|
|
|
|
<a id="ERR_CONSOLE_WRITABLE_STREAM"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_CONSOLE_WRITABLE_STREAM`
|
2017-02-13 17:28:51 +01:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
`Console` was instantiated without `stdout` stream, or `Console` has a
|
|
|
|
|
non-writable `stdout` or `stderr` stream.
|
2017-02-13 17:28:51 +01:00
|
|
|
|
|
2020-02-07 18:49:43 +01:00
|
|
|
|
<a id="ERR_CONTEXT_NOT_INITIALIZED"></a>
|
|
|
|
|
### `ERR_CONTEXT_NOT_INITIALIZED`
|
|
|
|
|
|
|
|
|
|
The vm context passed into the API is not yet initialized. This could happen
|
|
|
|
|
when an error occurs (and is caught) during the creation of the
|
|
|
|
|
context, for example, when the allocation fails or the maximum call stack
|
|
|
|
|
size is reached when the context is created.
|
|
|
|
|
|
2017-09-05 22:38:32 +02:00
|
|
|
|
<a id="ERR_CONSTRUCT_CALL_REQUIRED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_CONSTRUCT_CALL_REQUIRED`
|
2017-09-05 22:38:32 +02:00
|
|
|
|
|
|
|
|
|
A constructor for a class was called without `new`.
|
|
|
|
|
|
2019-06-02 19:42:22 +02:00
|
|
|
|
<a id="ERR_CONSTRUCT_CALL_INVALID"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_CONSTRUCT_CALL_INVALID`
|
2019-06-02 19:42:22 +02:00
|
|
|
|
<!--
|
2019-06-17 21:31:37 +02:00
|
|
|
|
added: v12.5.0
|
2019-06-02 19:42:22 +02:00
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
A class constructor was called that is not callable.
|
|
|
|
|
|
2017-06-21 20:14:45 +02:00
|
|
|
|
<a id="ERR_CPU_USAGE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_CPU_USAGE`
|
2017-06-21 20:14:45 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
The native call from `process.cpuUsage` could not be processed.
|
2017-06-21 20:14:45 +02:00
|
|
|
|
|
2016-04-15 16:49:36 +02:00
|
|
|
|
<a id="ERR_CRYPTO_CUSTOM_ENGINE_NOT_SUPPORTED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_CRYPTO_CUSTOM_ENGINE_NOT_SUPPORTED`
|
2016-04-15 16:49:36 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
A client certificate engine was requested that is not supported by the version
|
|
|
|
|
of OpenSSL being used.
|
2016-04-15 16:49:36 +02:00
|
|
|
|
|
2017-09-06 17:10:34 +02:00
|
|
|
|
<a id="ERR_CRYPTO_ECDH_INVALID_FORMAT"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_CRYPTO_ECDH_INVALID_FORMAT`
|
2017-09-06 17:10:34 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An invalid value for the `format` argument was passed to the `crypto.ECDH()`
|
|
|
|
|
class `getPublicKey()` method.
|
2017-09-06 17:10:34 +02:00
|
|
|
|
|
2017-11-06 23:22:42 +01:00
|
|
|
|
<a id="ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY`
|
2017-11-06 23:22:42 +01:00
|
|
|
|
|
|
|
|
|
An invalid value for the `key` argument has been passed to the
|
|
|
|
|
`crypto.ECDH()` class `computeSecret()` method. It means that the public
|
|
|
|
|
key lies outside of the elliptic curve.
|
|
|
|
|
|
2017-10-24 08:06:53 +02:00
|
|
|
|
<a id="ERR_CRYPTO_ENGINE_UNKNOWN"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_CRYPTO_ENGINE_UNKNOWN`
|
2017-10-24 08:06:53 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An invalid crypto engine identifier was passed to
|
2017-10-24 08:06:53 +02:00
|
|
|
|
[`require('crypto').setEngine()`][].
|
|
|
|
|
|
2017-10-24 07:44:52 +02:00
|
|
|
|
<a id="ERR_CRYPTO_FIPS_FORCED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_CRYPTO_FIPS_FORCED`
|
2017-10-24 07:44:52 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
The [`--force-fips`][] command-line argument was used but there was an attempt
|
|
|
|
|
to enable or disable FIPS mode in the `crypto` module.
|
2017-10-24 07:44:52 +02:00
|
|
|
|
|
|
|
|
|
<a id="ERR_CRYPTO_FIPS_UNAVAILABLE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_CRYPTO_FIPS_UNAVAILABLE`
|
2017-10-24 07:44:52 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An attempt was made to enable or disable FIPS mode, but FIPS mode was not
|
|
|
|
|
available.
|
2017-10-24 07:44:52 +02:00
|
|
|
|
|
2017-10-24 19:17:53 +02:00
|
|
|
|
<a id="ERR_CRYPTO_HASH_FINALIZED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_CRYPTO_HASH_FINALIZED`
|
2017-10-24 19:17:53 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
[`hash.digest()`][] was called multiple times. The `hash.digest()` method must
|
|
|
|
|
be called no more than one time per instance of a `Hash` object.
|
2017-10-24 19:17:53 +02:00
|
|
|
|
|
|
|
|
|
<a id="ERR_CRYPTO_HASH_UPDATE_FAILED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_CRYPTO_HASH_UPDATE_FAILED`
|
2017-10-24 19:17:53 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
[`hash.update()`][] failed for any reason. This should rarely, if ever, happen.
|
2017-10-24 19:17:53 +02:00
|
|
|
|
|
2020-01-03 12:01:34 +01:00
|
|
|
|
<a id="ERR_CRYPTO_INCOMPATIBLE_KEY"></a>
|
|
|
|
|
### `ERR_CRYPTO_INCOMPATIBLE_KEY`
|
|
|
|
|
|
|
|
|
|
The given crypto keys are incompatible with the attempted operation.
|
|
|
|
|
|
2018-09-02 17:00:01 +02:00
|
|
|
|
<a id="ERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONS"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_CRYPTO_INCOMPATIBLE_KEY_OPTIONS`
|
2018-09-02 17:00:01 +02:00
|
|
|
|
|
|
|
|
|
The selected public or private key encoding is incompatible with other options.
|
|
|
|
|
|
2017-10-03 05:56:49 +02:00
|
|
|
|
<a id="ERR_CRYPTO_INVALID_DIGEST"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_CRYPTO_INVALID_DIGEST`
|
2017-10-03 05:56:49 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An invalid [crypto digest algorithm][] was specified.
|
2017-10-03 05:56:49 +02:00
|
|
|
|
|
2018-09-20 19:53:44 +02:00
|
|
|
|
<a id="ERR_CRYPTO_INVALID_KEY_OBJECT_TYPE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_CRYPTO_INVALID_KEY_OBJECT_TYPE`
|
2018-09-20 19:53:44 +02:00
|
|
|
|
|
|
|
|
|
The given crypto key object's type is invalid for the attempted operation.
|
|
|
|
|
|
2017-10-26 22:06:09 +02:00
|
|
|
|
<a id="ERR_CRYPTO_INVALID_STATE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_CRYPTO_INVALID_STATE`
|
2017-10-26 22:06:09 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
A crypto method was used on an object that was in an invalid state. For
|
|
|
|
|
instance, calling [`cipher.getAuthTag()`][] before calling `cipher.final()`.
|
2017-10-26 22:06:09 +02:00
|
|
|
|
|
2018-05-18 11:05:20 +02:00
|
|
|
|
<a id="ERR_CRYPTO_PBKDF2_ERROR"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_CRYPTO_PBKDF2_ERROR`
|
2018-05-18 11:05:20 +02:00
|
|
|
|
|
|
|
|
|
The PBKDF2 algorithm failed for unspecified reasons. OpenSSL does not provide
|
|
|
|
|
more details and therefore neither does Node.js.
|
|
|
|
|
|
2018-05-18 11:05:20 +02:00
|
|
|
|
<a id="ERR_CRYPTO_SCRYPT_INVALID_PARAMETER"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_CRYPTO_SCRYPT_INVALID_PARAMETER`
|
2018-05-18 11:05:20 +02:00
|
|
|
|
|
|
|
|
|
One or more [`crypto.scrypt()`][] or [`crypto.scryptSync()`][] parameters are
|
|
|
|
|
outside their legal range.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_CRYPTO_SCRYPT_NOT_SUPPORTED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_CRYPTO_SCRYPT_NOT_SUPPORTED`
|
2018-05-18 11:05:20 +02:00
|
|
|
|
|
|
|
|
|
Node.js was compiled without `scrypt` support. Not possible with the official
|
|
|
|
|
release binaries but can happen with custom builds, including distro builds.
|
|
|
|
|
|
2017-10-24 19:17:53 +02:00
|
|
|
|
<a id="ERR_CRYPTO_SIGN_KEY_REQUIRED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_CRYPTO_SIGN_KEY_REQUIRED`
|
2017-10-24 19:17:53 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
A signing `key` was not provided to the [`sign.sign()`][] method.
|
2017-10-24 19:17:53 +02:00
|
|
|
|
|
2017-10-24 19:04:25 +02:00
|
|
|
|
<a id="ERR_CRYPTO_TIMING_SAFE_EQUAL_LENGTH"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_CRYPTO_TIMING_SAFE_EQUAL_LENGTH`
|
2017-10-24 19:04:25 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
[`crypto.timingSafeEqual()`][] was called with `Buffer`, `TypedArray`, or
|
|
|
|
|
`DataView` arguments of different lengths.
|
2017-10-24 19:04:25 +02:00
|
|
|
|
|
2020-01-20 23:14:13 +01:00
|
|
|
|
<a id="ERR_CRYPTO_UNKNOWN_CIPHER"></a>
|
|
|
|
|
### `ERR_CRYPTO_UNKNOWN_CIPHER`
|
|
|
|
|
|
|
|
|
|
An unknown cipher was specified.
|
|
|
|
|
|
2019-12-31 02:12:36 +01:00
|
|
|
|
<a id="ERR_CRYPTO_UNKNOWN_DH_GROUP"></a>
|
|
|
|
|
### `ERR_CRYPTO_UNKNOWN_DH_GROUP`
|
|
|
|
|
|
|
|
|
|
An unknown Diffie-Hellman group name was given. See
|
|
|
|
|
[`crypto.getDiffieHellman()`][] for a list of valid group names.
|
|
|
|
|
|
2019-08-28 02:14:27 +02:00
|
|
|
|
<a id="ERR_DIR_CLOSED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_DIR_CLOSED`
|
2019-08-28 02:14:27 +02:00
|
|
|
|
|
|
|
|
|
The [`fs.Dir`][] was previously closed.
|
|
|
|
|
|
2017-07-13 01:58:59 +02:00
|
|
|
|
<a id="ERR_DNS_SET_SERVERS_FAILED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_DNS_SET_SERVERS_FAILED`
|
2017-07-13 01:58:59 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
`c-ares` failed to set the DNS server.
|
2017-07-13 01:58:59 +02:00
|
|
|
|
|
2017-11-20 19:57:20 +01:00
|
|
|
|
<a id="ERR_DOMAIN_CALLBACK_NOT_AVAILABLE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_DOMAIN_CALLBACK_NOT_AVAILABLE`
|
2017-11-20 19:57:20 +01:00
|
|
|
|
|
|
|
|
|
The `domain` module was not usable since it could not establish the required
|
|
|
|
|
error handling hooks, because
|
|
|
|
|
[`process.setUncaughtExceptionCaptureCallback()`][] had been called at an
|
|
|
|
|
earlier point in time.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_DOMAIN_CANNOT_SET_UNCAUGHT_EXCEPTION_CAPTURE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_DOMAIN_CANNOT_SET_UNCAUGHT_EXCEPTION_CAPTURE`
|
2017-11-20 19:57:20 +01:00
|
|
|
|
|
|
|
|
|
[`process.setUncaughtExceptionCaptureCallback()`][] could not be called
|
|
|
|
|
because the `domain` module has been loaded at an earlier point in time.
|
|
|
|
|
|
|
|
|
|
The stack trace is extended to include the point in time at which the
|
|
|
|
|
`domain` module had been loaded.
|
|
|
|
|
|
2017-09-03 10:27:44 +02:00
|
|
|
|
<a id="ERR_ENCODING_INVALID_ENCODED_DATA"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_ENCODING_INVALID_ENCODED_DATA`
|
2017-09-03 10:27:44 +02:00
|
|
|
|
|
2018-08-12 20:55:13 +02:00
|
|
|
|
Data provided to `TextDecoder()` API was invalid according to the encoding
|
2017-11-09 19:10:37 +01:00
|
|
|
|
provided.
|
2017-09-03 10:27:44 +02:00
|
|
|
|
|
|
|
|
|
<a id="ERR_ENCODING_NOT_SUPPORTED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_ENCODING_NOT_SUPPORTED`
|
2017-09-03 10:27:44 +02:00
|
|
|
|
|
2018-08-12 20:55:13 +02:00
|
|
|
|
Encoding provided to `TextDecoder()` API was not one of the
|
2017-11-09 19:10:37 +01:00
|
|
|
|
[WHATWG Supported Encodings][].
|
2017-09-03 10:27:44 +02:00
|
|
|
|
|
2020-02-21 08:32:51 +01:00
|
|
|
|
<a id="ERR_EXECUTION_ENVIRONMENT_NOT_AVAILABLE"></a>
|
|
|
|
|
### `ERR_EXECUTION_ENVIRONMENT_NOT_AVAILABLE`
|
|
|
|
|
|
|
|
|
|
The JS execution context is not associated with a Node.js environment.
|
|
|
|
|
This may occur when Node.js is used as an embedded library and some hooks
|
|
|
|
|
for the JS engine are not set up properly.
|
|
|
|
|
|
2017-06-11 05:31:51 +02:00
|
|
|
|
<a id="ERR_FALSY_VALUE_REJECTION"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_FALSY_VALUE_REJECTION`
|
2017-06-11 05:31:51 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
A `Promise` that was callbackified via `util.callbackify()` was rejected with a
|
|
|
|
|
falsy value.
|
2017-06-11 05:31:51 +02:00
|
|
|
|
|
2018-03-15 14:22:36 +01:00
|
|
|
|
<a id="ERR_FS_FILE_TOO_LARGE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_FS_FILE_TOO_LARGE`
|
2018-03-15 14:22:36 +01:00
|
|
|
|
|
|
|
|
|
An attempt has been made to read a file whose size is larger than the maximum
|
|
|
|
|
allowed size for a `Buffer`.
|
|
|
|
|
|
2017-12-13 23:24:34 +01:00
|
|
|
|
<a id="ERR_FS_INVALID_SYMLINK_TYPE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_FS_INVALID_SYMLINK_TYPE`
|
2017-12-13 23:24:34 +01:00
|
|
|
|
|
|
|
|
|
An invalid symlink type was passed to the [`fs.symlink()`][] or
|
|
|
|
|
[`fs.symlinkSync()`][] methods.
|
|
|
|
|
|
2017-06-21 20:14:45 +02:00
|
|
|
|
<a id="ERR_HTTP_HEADERS_SENT"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP_HEADERS_SENT`
|
2017-06-21 20:14:45 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An attempt was made to add more headers after the headers had already been sent.
|
2017-06-21 20:14:45 +02:00
|
|
|
|
|
2017-11-03 13:04:12 +01:00
|
|
|
|
<a id="ERR_HTTP_INVALID_HEADER_VALUE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP_INVALID_HEADER_VALUE`
|
2017-11-03 13:04:12 +01:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An invalid HTTP header value was specified.
|
2017-11-03 13:04:12 +01:00
|
|
|
|
|
2017-06-21 20:14:45 +02:00
|
|
|
|
<a id="ERR_HTTP_INVALID_STATUS_CODE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP_INVALID_STATUS_CODE`
|
2017-06-21 20:14:45 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
Status code was outside the regular status code range (100-999).
|
2017-06-21 20:14:45 +02:00
|
|
|
|
|
|
|
|
|
<a id="ERR_HTTP_TRAILER_INVALID"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP_TRAILER_INVALID`
|
2017-06-21 20:14:45 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
The `Trailer` header was set even though the transfer encoding does not support
|
|
|
|
|
that.
|
2017-06-21 20:14:45 +02:00
|
|
|
|
|
2017-12-29 18:44:08 +01:00
|
|
|
|
<a id="ERR_HTTP2_ALTSVC_INVALID_ORIGIN"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_ALTSVC_INVALID_ORIGIN`
|
2017-12-29 18:44:08 +01:00
|
|
|
|
|
|
|
|
|
HTTP/2 ALTSVC frames require a valid origin.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_HTTP2_ALTSVC_LENGTH"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_ALTSVC_LENGTH`
|
2017-12-29 18:44:08 +01:00
|
|
|
|
|
|
|
|
|
HTTP/2 ALTSVC frames are limited to a maximum of 16,382 payload bytes.
|
|
|
|
|
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
<a id="ERR_HTTP2_CONNECT_AUTHORITY"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_CONNECT_AUTHORITY`
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
|
|
|
|
For HTTP/2 requests using the `CONNECT` method, the `:authority` pseudo-header
|
|
|
|
|
is required.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_HTTP2_CONNECT_PATH"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_CONNECT_PATH`
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
|
|
|
|
For HTTP/2 requests using the `CONNECT` method, the `:path` pseudo-header is
|
|
|
|
|
forbidden.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_HTTP2_CONNECT_SCHEME"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_CONNECT_SCHEME`
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
2017-09-03 10:27:44 +02:00
|
|
|
|
For HTTP/2 requests using the `CONNECT` method, the `:scheme` pseudo-header is
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
forbidden.
|
|
|
|
|
|
2018-06-23 11:40:55 +02:00
|
|
|
|
<a id="ERR_HTTP2_ERROR"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_ERROR`
|
2018-06-23 11:40:55 +02:00
|
|
|
|
|
|
|
|
|
A non-specific HTTP/2 error has occurred.
|
|
|
|
|
|
2017-12-12 20:34:17 +01:00
|
|
|
|
<a id="ERR_HTTP2_GOAWAY_SESSION"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_GOAWAY_SESSION`
|
2017-12-12 20:34:17 +01:00
|
|
|
|
|
|
|
|
|
New HTTP/2 Streams may not be opened after the `Http2Session` has received a
|
|
|
|
|
`GOAWAY` frame from the connected peer.
|
|
|
|
|
|
2017-09-03 10:27:44 +02:00
|
|
|
|
<a id="ERR_HTTP2_HEADERS_AFTER_RESPOND"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_HEADERS_AFTER_RESPOND`
|
2017-09-03 10:27:44 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An additional headers was specified after an HTTP/2 response was initiated.
|
2017-09-03 10:27:44 +02:00
|
|
|
|
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
<a id="ERR_HTTP2_HEADERS_SENT"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_HEADERS_SENT`
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An attempt was made to send multiple response headers.
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
2018-06-23 12:05:42 +02:00
|
|
|
|
<a id="ERR_HTTP2_HEADER_SINGLE_VALUE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_HEADER_SINGLE_VALUE`
|
2018-06-23 12:05:42 +02:00
|
|
|
|
|
|
|
|
|
Multiple values were provided for an HTTP/2 header field that was required to
|
|
|
|
|
have only a single value.
|
|
|
|
|
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
<a id="ERR_HTTP2_INFO_STATUS_NOT_ALLOWED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_INFO_STATUS_NOT_ALLOWED`
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
|
|
|
|
Informational HTTP status codes (`1xx`) may not be set as the response status
|
|
|
|
|
code on HTTP/2 responses.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_HTTP2_INVALID_CONNECTION_HEADERS"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_INVALID_CONNECTION_HEADERS`
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
|
|
|
|
HTTP/1 connection specific headers are forbidden to be used in HTTP/2
|
|
|
|
|
requests and responses.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_HTTP2_INVALID_HEADER_VALUE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_INVALID_HEADER_VALUE`
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An invalid HTTP/2 header value was specified.
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
|
|
|
|
<a id="ERR_HTTP2_INVALID_INFO_STATUS"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_INVALID_INFO_STATUS`
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
|
|
|
|
An invalid HTTP informational status code has been specified. Informational
|
|
|
|
|
status codes must be an integer between `100` and `199` (inclusive).
|
|
|
|
|
|
2018-09-17 04:13:11 +02:00
|
|
|
|
<a id="ERR_HTTP2_INVALID_ORIGIN"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_INVALID_ORIGIN`
|
2018-09-17 04:13:11 +02:00
|
|
|
|
|
|
|
|
|
HTTP/2 `ORIGIN` frames require a valid origin.
|
|
|
|
|
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
<a id="ERR_HTTP2_INVALID_PACKED_SETTINGS_LENGTH"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_INVALID_PACKED_SETTINGS_LENGTH`
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
|
|
|
|
Input `Buffer` and `Uint8Array` instances passed to the
|
|
|
|
|
`http2.getUnpackedSettings()` API must have a length that is a multiple of
|
|
|
|
|
six.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_HTTP2_INVALID_PSEUDOHEADER"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_INVALID_PSEUDOHEADER`
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
|
|
|
|
Only valid HTTP/2 pseudoheaders (`:status`, `:path`, `:authority`, `:scheme`,
|
|
|
|
|
and `:method`) may be used.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_HTTP2_INVALID_SESSION"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_INVALID_SESSION`
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An action was performed on an `Http2Session` object that had already been
|
|
|
|
|
destroyed.
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
|
|
|
|
<a id="ERR_HTTP2_INVALID_SETTING_VALUE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_INVALID_SETTING_VALUE`
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
|
|
|
|
An invalid value has been specified for an HTTP/2 setting.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_HTTP2_INVALID_STREAM"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_INVALID_STREAM`
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An operation was performed on a stream that had already been destroyed.
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
|
|
|
|
<a id="ERR_HTTP2_MAX_PENDING_SETTINGS_ACK"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_MAX_PENDING_SETTINGS_ACK`
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
|
|
|
|
Whenever an HTTP/2 `SETTINGS` frame is sent to a connected peer, the peer is
|
2017-12-29 05:55:31 +01:00
|
|
|
|
required to send an acknowledgment that it has received and applied the new
|
2017-11-09 19:10:37 +01:00
|
|
|
|
`SETTINGS`. By default, a maximum number of unacknowledged `SETTINGS` frames may
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
be sent at any given time. This error code is used when that limit has been
|
|
|
|
|
reached.
|
|
|
|
|
|
2018-08-10 20:05:57 +02:00
|
|
|
|
<a id="ERR_HTTP2_NESTED_PUSH"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_NESTED_PUSH`
|
2018-08-10 20:05:57 +02:00
|
|
|
|
|
|
|
|
|
An attempt was made to initiate a new push stream from within a push stream.
|
|
|
|
|
Nested push streams are not permitted.
|
|
|
|
|
|
2017-10-03 03:56:53 +02:00
|
|
|
|
<a id="ERR_HTTP2_NO_SOCKET_MANIPULATION"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_NO_SOCKET_MANIPULATION`
|
2017-10-03 03:56:53 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An attempt was made to directly manipulate (read, write, pause, resume, etc.) a
|
|
|
|
|
socket attached to an `Http2Session`.
|
2017-10-03 03:56:53 +02:00
|
|
|
|
|
2018-09-17 04:13:11 +02:00
|
|
|
|
<a id="ERR_HTTP2_ORIGIN_LENGTH"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_ORIGIN_LENGTH`
|
2018-09-17 04:13:11 +02:00
|
|
|
|
|
|
|
|
|
HTTP/2 `ORIGIN` frames are limited to a length of 16382 bytes.
|
|
|
|
|
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
<a id="ERR_HTTP2_OUT_OF_STREAMS"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_OUT_OF_STREAMS`
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
The number of streams created on a single HTTP/2 session reached the maximum
|
|
|
|
|
limit.
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
|
|
|
|
<a id="ERR_HTTP2_PAYLOAD_FORBIDDEN"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_PAYLOAD_FORBIDDEN`
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
A message payload was specified for an HTTP response code for which a payload is
|
|
|
|
|
forbidden.
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
2017-11-15 19:55:31 +01:00
|
|
|
|
<a id="ERR_HTTP2_PING_CANCEL"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_PING_CANCEL`
|
2017-11-15 19:55:31 +01:00
|
|
|
|
|
2017-12-29 05:55:31 +01:00
|
|
|
|
An HTTP/2 ping was canceled.
|
2017-11-15 19:55:31 +01:00
|
|
|
|
|
|
|
|
|
<a id="ERR_HTTP2_PING_LENGTH"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_PING_LENGTH`
|
2017-11-15 19:55:31 +01:00
|
|
|
|
|
|
|
|
|
HTTP/2 ping payloads must be exactly 8 bytes in length.
|
|
|
|
|
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
<a id="ERR_HTTP2_PSEUDOHEADER_NOT_ALLOWED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_PSEUDOHEADER_NOT_ALLOWED`
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An HTTP/2 pseudo-header has been used inappropriately. Pseudo-headers are header
|
|
|
|
|
key names that begin with the `:` prefix.
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
|
|
|
|
<a id="ERR_HTTP2_PUSH_DISABLED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_PUSH_DISABLED`
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An attempt was made to create a push stream, which had been disabled by the
|
|
|
|
|
client.
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
|
|
|
|
<a id="ERR_HTTP2_SEND_FILE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_SEND_FILE`
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An attempt was made to use the `Http2Stream.prototype.responseWithFile()` API to
|
2018-02-14 00:18:18 +01:00
|
|
|
|
send a directory.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_HTTP2_SEND_FILE_NOSEEK"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_SEND_FILE_NOSEEK`
|
2018-02-14 00:18:18 +01:00
|
|
|
|
|
|
|
|
|
An attempt was made to use the `Http2Stream.prototype.responseWithFile()` API to
|
|
|
|
|
send something other than a regular file, but `offset` or `length` options were
|
|
|
|
|
provided.
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
2017-12-12 20:34:17 +01:00
|
|
|
|
<a id="ERR_HTTP2_SESSION_ERROR"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_SESSION_ERROR`
|
2017-12-12 20:34:17 +01:00
|
|
|
|
|
|
|
|
|
The `Http2Session` closed with a non-zero error code.
|
|
|
|
|
|
2018-06-27 16:05:32 +02:00
|
|
|
|
<a id="ERR_HTTP2_SETTINGS_CANCEL"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_SETTINGS_CANCEL`
|
2018-06-27 16:05:32 +02:00
|
|
|
|
|
|
|
|
|
The `Http2Session` settings canceled.
|
|
|
|
|
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
<a id="ERR_HTTP2_SOCKET_BOUND"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_SOCKET_BOUND`
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An attempt was made to connect a `Http2Session` object to a `net.Socket` or
|
|
|
|
|
`tls.TLSSocket` that had already been bound to another `Http2Session` object.
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
2018-08-23 19:38:31 +02:00
|
|
|
|
<a id="ERR_HTTP2_SOCKET_UNBOUND"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_SOCKET_UNBOUND`
|
2018-08-23 19:38:31 +02:00
|
|
|
|
|
|
|
|
|
An attempt was made to use the `socket` property of an `Http2Session` that
|
|
|
|
|
has already been closed.
|
|
|
|
|
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
<a id="ERR_HTTP2_STATUS_101"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_STATUS_101`
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
|
|
|
|
Use of the `101` Informational status code is forbidden in HTTP/2.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_HTTP2_STATUS_INVALID"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_STATUS_INVALID`
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
|
|
|
|
An invalid HTTP status code has been specified. Status codes must be an integer
|
|
|
|
|
between `100` and `599` (inclusive).
|
|
|
|
|
|
2017-12-12 20:34:17 +01:00
|
|
|
|
<a id="ERR_HTTP2_STREAM_CANCEL"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_STREAM_CANCEL`
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
2017-12-12 20:34:17 +01:00
|
|
|
|
An `Http2Stream` was destroyed before any data was transmitted to the connected
|
|
|
|
|
peer.
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
|
|
|
|
<a id="ERR_HTTP2_STREAM_ERROR"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_STREAM_ERROR`
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
A non-zero error code was been specified in an `RST_STREAM` frame.
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
|
|
|
|
<a id="ERR_HTTP2_STREAM_SELF_DEPENDENCY"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_STREAM_SELF_DEPENDENCY`
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
|
|
|
|
When setting the priority for an HTTP/2 stream, the stream may be marked as
|
|
|
|
|
a dependency for a parent stream. This error code is used when an attempt is
|
|
|
|
|
made to mark a stream and dependent of itself.
|
|
|
|
|
|
2018-04-12 01:11:35 +02:00
|
|
|
|
<a id="ERR_HTTP2_TRAILERS_ALREADY_SENT"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_TRAILERS_ALREADY_SENT`
|
2018-04-12 01:11:35 +02:00
|
|
|
|
|
|
|
|
|
Trailing headers have already been sent on the `Http2Stream`.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_HTTP2_TRAILERS_NOT_READY"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_TRAILERS_NOT_READY`
|
2018-04-12 01:11:35 +02:00
|
|
|
|
|
|
|
|
|
The `http2stream.sendTrailers()` method cannot be called until after the
|
|
|
|
|
`'wantTrailers'` event is emitted on an `Http2Stream` object. The
|
|
|
|
|
`'wantTrailers'` event will only be emitted if the `waitForTrailers` option
|
|
|
|
|
is set for the `Http2Stream`.
|
|
|
|
|
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
<a id="ERR_HTTP2_UNSUPPORTED_PROTOCOL"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_UNSUPPORTED_PROTOCOL`
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
`http2.connect()` was passed a URL that uses any protocol other than `http:` or
|
|
|
|
|
`https:`.
|
http2: introducing HTTP/2
At long last: The initial *experimental* implementation of HTTP/2.
This is an accumulation of the work that has been done in the nodejs/http2
repository, squashed down to a couple of commits. The original commit
history has been preserved in the nodejs/http2 repository.
This PR introduces the nghttp2 C library as a new dependency. This library
provides the majority of the HTTP/2 protocol implementation, with the rest
of the code here providing the mapping of the library into a usable JS API.
Within src, a handful of new node_http2_*.c and node_http2_*.h files are
introduced. These provide the internal mechanisms that interface with nghttp
and define the `process.binding('http2')` interface.
The JS API is defined within `internal/http2/*.js`.
There are two APIs provided: Core and Compat.
The Core API is HTTP/2 specific and is designed to be as minimal and as
efficient as possible.
The Compat API is intended to be as close to the existing HTTP/1 API as
possible, with some exceptions.
Tests, documentation and initial benchmarks are included.
The `http2` module is gated by a new `--expose-http2` command line flag.
When used, `require('http2')` will be exposed to users. Note that there
is an existing `http2` module on npm that would be impacted by the introduction
of this module, which is the main reason for gating this behind a flag.
When using `require('http2')` the first time, a process warning will be
emitted indicating that an experimental feature is being used.
To run the benchmarks, the `h2load` tool (part of the nghttp project) is
required: `./node benchmarks/http2/simple.js benchmarker=h2load`. Only
two benchmarks are currently available.
Additional configuration options to enable verbose debugging are provided:
```
$ ./configure --debug-http2 --debug-nghttp2
$ NODE_DEBUG=http2 ./node
```
The `--debug-http2` configuration option enables verbose debug statements
from the `src/node_http2_*` files. The `--debug-nghttp2` enables the nghttp
library's own verbose debug output. The `NODE_DEBUG=http2` enables JS-level
debug output.
The following illustrates as simple HTTP/2 server and client interaction:
(The HTTP/2 client and server support both plain text and TLS connections)
```jt client = http2.connect('http://localhost:80');
const req = client.request({ ':path': '/some/path' });
req.on('data', (chunk) => { /* do something with the data */ });
req.on('end', () => {
client.destroy();
});
// Plain text (non-TLS server)
const server = http2.createServer();
server.on('stream', (stream, requestHeaders) => {
stream.respond({ ':status': 200 });
stream.write('hello ');
stream.end('world');
});
server.listen(80);
```
```js
const http2 = require('http2');
const client = http2.connect('http://localhost');
```
Author: Anna Henningsen <anna@addaleax.net>
Author: Colin Ihrig <cjihrig@gmail.com>
Author: Daniel Bevenius <daniel.bevenius@gmail.com>
Author: James M Snell <jasnell@gmail.com>
Author: Jun Mukai
Author: Kelvin Jin
Author: Matteo Collina <matteo.collina@gmail.com>
Author: Robert Kowalski <rok@kowalski.gd>
Author: Santiago Gimeno <santiago.gimeno@gmail.com>
Author: Sebastiaan Deckers <sebdeckers83@gmail.com>
Author: Yosuke Furukawa <yosuke.furukawa@gmail.com>
PR-URL: https://github.com/nodejs/node/pull/14239
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
2017-07-17 19:17:16 +02:00
|
|
|
|
|
2019-03-13 15:43:00 +01:00
|
|
|
|
<a id="ERR_INTERNAL_ASSERTION"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INTERNAL_ASSERTION`
|
2019-03-13 15:43:00 +01:00
|
|
|
|
|
|
|
|
|
There was a bug in Node.js or incorrect usage of Node.js internals.
|
|
|
|
|
To fix the error, open an issue at https://github.com/nodejs/node/issues.
|
|
|
|
|
|
2018-12-12 03:26:15 +01:00
|
|
|
|
<a id="ERR_INCOMPATIBLE_OPTION_PAIR"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INCOMPATIBLE_OPTION_PAIR`
|
2018-12-12 03:26:15 +01:00
|
|
|
|
|
2020-01-20 16:17:30 +01:00
|
|
|
|
An option pair is incompatible with each other and cannot be used at the same
|
2018-12-12 03:26:15 +01:00
|
|
|
|
time.
|
|
|
|
|
|
2019-04-15 19:29:56 +02:00
|
|
|
|
<a id="ERR_INPUT_TYPE_NOT_ALLOWED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INPUT_TYPE_NOT_ALLOWED`
|
2019-04-15 19:29:56 +02:00
|
|
|
|
|
|
|
|
|
> Stability: 1 - Experimental
|
|
|
|
|
|
|
|
|
|
The `--input-type` flag was used to attempt to execute a file. This flag can
|
|
|
|
|
only be used with input via `--eval`, `--print` or `STDIN`.
|
|
|
|
|
|
2017-09-26 02:11:50 +02:00
|
|
|
|
<a id="ERR_INSPECTOR_ALREADY_CONNECTED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INSPECTOR_ALREADY_CONNECTED`
|
2017-09-26 02:11:50 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
While using the `inspector` module, an attempt was made to connect when the
|
|
|
|
|
inspector was already connected.
|
2017-09-26 02:11:50 +02:00
|
|
|
|
|
|
|
|
|
<a id="ERR_INSPECTOR_CLOSED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INSPECTOR_CLOSED`
|
2017-09-26 02:11:50 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
While using the `inspector` module, an attempt was made to use the inspector
|
|
|
|
|
after the session had already closed.
|
2017-09-26 02:11:50 +02:00
|
|
|
|
|
2019-02-21 21:50:50 +01:00
|
|
|
|
<a id="ERR_INSPECTOR_COMMAND"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INSPECTOR_COMMAND`
|
2019-02-21 21:50:50 +01:00
|
|
|
|
|
|
|
|
|
An error occurred while issuing a command via the `inspector` module.
|
|
|
|
|
|
2019-06-26 00:28:56 +02:00
|
|
|
|
<a id="ERR_INSPECTOR_NOT_ACTIVE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INSPECTOR_NOT_ACTIVE`
|
2019-06-26 00:28:56 +02:00
|
|
|
|
|
|
|
|
|
The `inspector` is not active when `inspector.waitForDebugger()` is called.
|
|
|
|
|
|
2017-09-26 02:11:50 +02:00
|
|
|
|
<a id="ERR_INSPECTOR_NOT_AVAILABLE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INSPECTOR_NOT_AVAILABLE`
|
2017-09-26 02:11:50 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
The `inspector` module is not available for use.
|
2017-09-26 02:11:50 +02:00
|
|
|
|
|
|
|
|
|
<a id="ERR_INSPECTOR_NOT_CONNECTED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INSPECTOR_NOT_CONNECTED`
|
2017-09-26 02:11:50 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
While using the `inspector` module, an attempt was made to use the inspector
|
|
|
|
|
before it was connected.
|
2017-09-26 02:11:50 +02:00
|
|
|
|
|
2019-07-26 19:40:54 +02:00
|
|
|
|
<a id="ERR_INSPECTOR_NOT_WORKER"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INSPECTOR_NOT_WORKER`
|
2019-07-26 19:40:54 +02:00
|
|
|
|
|
|
|
|
|
An API was called on the main thread that can only be used from
|
|
|
|
|
the worker thread.
|
|
|
|
|
|
2018-03-17 17:43:50 +01:00
|
|
|
|
<a id="ERR_INVALID_ADDRESS_FAMILY"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_ADDRESS_FAMILY`
|
2018-03-17 17:43:50 +01:00
|
|
|
|
|
|
|
|
|
The provided address family is not understood by the Node.js API.
|
|
|
|
|
|
2017-02-10 17:51:50 +01:00
|
|
|
|
<a id="ERR_INVALID_ARG_TYPE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_ARG_TYPE`
|
2017-02-10 17:51:50 +01:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An argument of the wrong type was passed to a Node.js API.
|
2017-02-10 17:51:50 +01:00
|
|
|
|
|
2017-09-26 01:48:57 +02:00
|
|
|
|
<a id="ERR_INVALID_ARG_VALUE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_ARG_VALUE`
|
2017-09-26 01:48:57 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An invalid or unsupported value was passed for a given argument.
|
2017-09-26 01:48:57 +02:00
|
|
|
|
|
2017-09-03 10:27:44 +02:00
|
|
|
|
<a id="ERR_INVALID_ASYNC_ID"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_ASYNC_ID`
|
2017-09-03 10:27:44 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An invalid `asyncId` or `triggerAsyncId` was passed using `AsyncHooks`. An id
|
|
|
|
|
less than -1 should never happen.
|
2017-09-03 10:27:44 +02:00
|
|
|
|
|
2017-06-29 05:58:39 +02:00
|
|
|
|
<a id="ERR_INVALID_BUFFER_SIZE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_BUFFER_SIZE`
|
2017-06-29 05:58:39 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
A swap was performed on a `Buffer` but its size was not compatible with the
|
|
|
|
|
operation.
|
2017-06-29 05:58:39 +02:00
|
|
|
|
|
2017-02-10 17:51:50 +01:00
|
|
|
|
<a id="ERR_INVALID_CALLBACK"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_CALLBACK`
|
2017-02-10 17:51:50 +01:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
A callback function was required but was not been provided to a Node.js API.
|
2017-02-10 17:51:50 +01:00
|
|
|
|
|
2017-06-21 20:14:45 +02:00
|
|
|
|
<a id="ERR_INVALID_CHAR"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_CHAR`
|
2017-06-21 20:14:45 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
Invalid characters were detected in headers.
|
2017-06-21 20:14:45 +02:00
|
|
|
|
|
2017-02-15 04:58:49 +01:00
|
|
|
|
<a id="ERR_INVALID_CURSOR_POS"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_CURSOR_POS`
|
2017-02-15 04:58:49 +01:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
A cursor on a given stream cannot be moved to a specified row without a
|
|
|
|
|
specified column.
|
2017-02-15 04:58:49 +01:00
|
|
|
|
|
2017-06-21 20:14:45 +02:00
|
|
|
|
<a id="ERR_INVALID_FD"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_FD`
|
2017-06-21 20:14:45 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
A file descriptor ('fd') was not valid (e.g. it was a negative value).
|
2017-06-21 20:14:45 +02:00
|
|
|
|
|
2017-08-11 23:02:15 +02:00
|
|
|
|
<a id="ERR_INVALID_FD_TYPE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_FD_TYPE`
|
2017-08-11 23:02:15 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
A file descriptor ('fd') type was not valid.
|
2017-08-11 23:02:15 +02:00
|
|
|
|
|
2017-04-21 20:54:58 +02:00
|
|
|
|
<a id="ERR_INVALID_FILE_URL_HOST"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_FILE_URL_HOST`
|
2017-04-21 20:54:58 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
A Node.js API that consumes `file:` URLs (such as certain functions in the
|
|
|
|
|
[`fs`][] module) encountered a file URL with an incompatible host. This
|
|
|
|
|
situation can only occur on Unix-like systems where only `localhost` or an empty
|
|
|
|
|
host is supported.
|
2017-04-21 20:54:58 +02:00
|
|
|
|
|
|
|
|
|
<a id="ERR_INVALID_FILE_URL_PATH"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_FILE_URL_PATH`
|
2017-04-21 20:54:58 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
A Node.js API that consumes `file:` URLs (such as certain functions in the
|
|
|
|
|
[`fs`][] module) encountered a file URL with an incompatible path. The exact
|
|
|
|
|
semantics for determining whether a path can be used is platform-dependent.
|
2017-04-21 20:54:58 +02:00
|
|
|
|
|
2017-02-10 21:08:49 +01:00
|
|
|
|
<a id="ERR_INVALID_HANDLE_TYPE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_HANDLE_TYPE`
|
2017-02-10 21:08:49 +01:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An attempt was made to send an unsupported "handle" over an IPC communication
|
2019-10-02 06:31:57 +02:00
|
|
|
|
channel to a child process. See [`subprocess.send()`][] and [`process.send()`][]
|
|
|
|
|
for more information.
|
2017-02-10 21:08:49 +01:00
|
|
|
|
|
2017-07-22 13:23:04 +02:00
|
|
|
|
<a id="ERR_INVALID_HTTP_TOKEN"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_HTTP_TOKEN`
|
2017-07-22 13:23:04 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An invalid HTTP token was supplied.
|
2017-07-22 13:23:04 +02:00
|
|
|
|
|
2017-07-13 01:58:59 +02:00
|
|
|
|
<a id="ERR_INVALID_IP_ADDRESS"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_IP_ADDRESS`
|
2017-07-13 01:58:59 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An IP address is not valid.
|
2017-07-13 01:58:59 +02:00
|
|
|
|
|
2020-02-03 12:31:12 +01:00
|
|
|
|
<a id="ERR_INVALID_MODULE_SPECIFIER"></a>
|
|
|
|
|
### `ERR_INVALID_MODULE_SPECIFIER`
|
|
|
|
|
|
|
|
|
|
The imported module string is an invalid URL, package name, or package subpath
|
|
|
|
|
specifier.
|
|
|
|
|
|
2017-02-10 21:08:49 +01:00
|
|
|
|
<a id="ERR_INVALID_OPT_VALUE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_OPT_VALUE`
|
2017-02-10 21:08:49 +01:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An invalid or unexpected value was passed in an options object.
|
2017-02-10 21:08:49 +01:00
|
|
|
|
|
2017-02-12 02:25:33 +01:00
|
|
|
|
<a id="ERR_INVALID_OPT_VALUE_ENCODING"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_OPT_VALUE_ENCODING`
|
2017-02-12 02:25:33 +01:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An invalid or unknown file encoding was passed.
|
2017-02-12 02:25:33 +01:00
|
|
|
|
|
2018-08-28 17:28:46 +02:00
|
|
|
|
<a id="ERR_INVALID_PACKAGE_CONFIG"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_PACKAGE_CONFIG`
|
2018-08-28 17:28:46 +02:00
|
|
|
|
|
|
|
|
|
An invalid `package.json` file was found which failed parsing.
|
|
|
|
|
|
2020-02-03 12:31:12 +01:00
|
|
|
|
<a id="ERR_INVALID_PACKAGE_TARGET"></a>
|
|
|
|
|
### `ERR_INVALID_PACKAGE_TARGET`
|
|
|
|
|
|
|
|
|
|
The `package.json` [exports][] field contains an invalid target mapping value
|
|
|
|
|
for the attempted module resolution.
|
|
|
|
|
|
2017-09-03 10:27:44 +02:00
|
|
|
|
<a id="ERR_INVALID_PERFORMANCE_MARK"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_PERFORMANCE_MARK`
|
2017-09-03 10:27:44 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
While using the Performance Timing API (`perf_hooks`), a performance mark is
|
2017-09-03 10:27:44 +02:00
|
|
|
|
invalid.
|
|
|
|
|
|
2017-07-22 13:23:04 +02:00
|
|
|
|
<a id="ERR_INVALID_PROTOCOL"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_PROTOCOL`
|
2017-07-22 13:23:04 +02:00
|
|
|
|
|
2019-04-24 22:01:29 +02:00
|
|
|
|
An invalid `options.protocol` was passed to `http.request()`.
|
2017-07-22 13:23:04 +02:00
|
|
|
|
|
2017-05-24 19:49:12 +02:00
|
|
|
|
<a id="ERR_INVALID_REPL_EVAL_CONFIG"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_REPL_EVAL_CONFIG`
|
2017-05-24 19:49:12 +02:00
|
|
|
|
|
2018-05-17 16:25:36 +02:00
|
|
|
|
Both `breakEvalOnSigint` and `eval` options were set in the [`REPL`][] config,
|
|
|
|
|
which is not supported.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_INVALID_REPL_INPUT"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_REPL_INPUT`
|
2018-05-17 16:25:36 +02:00
|
|
|
|
|
|
|
|
|
The input may not be used in the [`REPL`][]. All prohibited inputs are
|
|
|
|
|
documented in the [`REPL`][]'s documentation.
|
2017-05-24 19:49:12 +02:00
|
|
|
|
|
2018-06-18 13:59:22 +02:00
|
|
|
|
<a id="ERR_INVALID_RETURN_PROPERTY"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_RETURN_PROPERTY`
|
2018-06-18 13:59:22 +02:00
|
|
|
|
|
|
|
|
|
Thrown in case a function option does not provide a valid value for one of its
|
|
|
|
|
returned object properties on execution.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_INVALID_RETURN_PROPERTY_VALUE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_RETURN_PROPERTY_VALUE`
|
2018-06-18 13:59:22 +02:00
|
|
|
|
|
|
|
|
|
Thrown in case a function option does not provide an expected value
|
|
|
|
|
type for one of its returned object properties on execution.
|
|
|
|
|
|
2018-04-09 00:38:41 +02:00
|
|
|
|
<a id="ERR_INVALID_RETURN_VALUE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_RETURN_VALUE`
|
2018-04-09 00:38:41 +02:00
|
|
|
|
|
2018-06-18 13:59:22 +02:00
|
|
|
|
Thrown in case a function option does not return an expected value
|
2018-08-26 18:02:27 +02:00
|
|
|
|
type on execution, such as when a function is expected to return a promise.
|
2018-04-09 00:38:41 +02:00
|
|
|
|
|
2017-02-10 21:08:49 +01:00
|
|
|
|
<a id="ERR_INVALID_SYNC_FORK_INPUT"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_SYNC_FORK_INPUT`
|
2017-02-10 21:08:49 +01:00
|
|
|
|
|
2018-08-20 09:11:40 +02:00
|
|
|
|
A `Buffer`, `TypedArray`, `DataView` or `string` was provided as stdio input to
|
|
|
|
|
an asynchronous fork. See the documentation for the [`child_process`][] module
|
2018-01-17 22:22:48 +01:00
|
|
|
|
for more information.
|
2017-02-10 21:08:49 +01:00
|
|
|
|
|
2017-04-21 20:54:58 +02:00
|
|
|
|
<a id="ERR_INVALID_THIS"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_THIS`
|
2017-04-21 20:54:58 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
A Node.js API function was called with an incompatible `this` value.
|
2017-04-21 20:54:58 +02:00
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
const urlSearchParams = new URLSearchParams('foo=bar&baz=new');
|
|
|
|
|
|
|
|
|
|
const buf = Buffer.alloc(1);
|
|
|
|
|
urlSearchParams.has.call(buf, 'foo');
|
2017-06-27 22:32:32 +02:00
|
|
|
|
// Throws a TypeError with code 'ERR_INVALID_THIS'
|
2017-04-21 20:54:58 +02:00
|
|
|
|
```
|
|
|
|
|
|
2017-09-05 22:38:32 +02:00
|
|
|
|
<a id="ERR_INVALID_TRANSFER_OBJECT"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_TRANSFER_OBJECT`
|
2017-09-05 22:38:32 +02:00
|
|
|
|
|
|
|
|
|
An invalid transfer object was passed to `postMessage()`.
|
|
|
|
|
|
2017-04-21 20:54:58 +02:00
|
|
|
|
<a id="ERR_INVALID_TUPLE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_TUPLE`
|
2017-04-21 20:54:58 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An element in the `iterable` provided to the [WHATWG][WHATWG URL API]
|
|
|
|
|
[`URLSearchParams` constructor][`new URLSearchParams(iterable)`] did not
|
2017-06-12 07:14:09 +02:00
|
|
|
|
represent a `[name, value]` tuple – that is, if an element is not iterable, or
|
|
|
|
|
does not consist of exactly two elements.
|
2017-04-21 20:54:58 +02:00
|
|
|
|
|
2017-09-23 07:40:37 +02:00
|
|
|
|
<a id="ERR_INVALID_URI"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_URI`
|
2017-09-23 07:40:37 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An invalid URI was passed.
|
2017-09-23 07:40:37 +02:00
|
|
|
|
|
2017-04-21 20:54:58 +02:00
|
|
|
|
<a id="ERR_INVALID_URL"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_URL`
|
2017-04-21 20:54:58 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An invalid URL was passed to the [WHATWG][WHATWG URL API]
|
2017-06-12 07:14:09 +02:00
|
|
|
|
[`URL` constructor][`new URL(input)`] to be parsed. The thrown error object
|
|
|
|
|
typically has an additional property `'input'` that contains the URL that failed
|
|
|
|
|
to parse.
|
2017-04-21 20:54:58 +02:00
|
|
|
|
|
|
|
|
|
<a id="ERR_INVALID_URL_SCHEME"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INVALID_URL_SCHEME`
|
2017-04-21 20:54:58 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An attempt was made to use a URL of an incompatible scheme (protocol) for a
|
|
|
|
|
specific purpose. It is only used in the [WHATWG URL API][] support in the
|
|
|
|
|
[`fs`][] module (which only accepts URLs with `'file'` scheme), but may be used
|
|
|
|
|
in other Node.js APIs as well in the future.
|
2017-04-21 20:54:58 +02:00
|
|
|
|
|
2017-02-10 21:08:49 +01:00
|
|
|
|
<a id="ERR_IPC_CHANNEL_CLOSED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_IPC_CHANNEL_CLOSED`
|
2017-02-10 21:08:49 +01:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An attempt was made to use an IPC communication channel that was already closed.
|
2017-02-10 21:08:49 +01:00
|
|
|
|
|
|
|
|
|
<a id="ERR_IPC_DISCONNECTED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_IPC_DISCONNECTED`
|
2017-02-10 21:08:49 +01:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An attempt was made to disconnect an IPC communication channel that was already
|
2018-01-17 22:22:48 +01:00
|
|
|
|
disconnected. See the documentation for the [`child_process`][] module
|
|
|
|
|
for more information.
|
2017-02-10 21:08:49 +01:00
|
|
|
|
|
|
|
|
|
<a id="ERR_IPC_ONE_PIPE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_IPC_ONE_PIPE`
|
2017-02-10 21:08:49 +01:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An attempt was made to create a child Node.js process using more than one IPC
|
2018-01-17 22:22:48 +01:00
|
|
|
|
communication channel. See the documentation for the [`child_process`][] module
|
|
|
|
|
for more information.
|
2017-02-10 21:08:49 +01:00
|
|
|
|
|
|
|
|
|
<a id="ERR_IPC_SYNC_FORK"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_IPC_SYNC_FORK`
|
2017-02-10 21:08:49 +01:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An attempt was made to open an IPC communication channel with a synchronously
|
2018-01-17 22:22:48 +01:00
|
|
|
|
forked Node.js process. See the documentation for the [`child_process`][] module
|
|
|
|
|
for more information.
|
2017-02-10 21:08:49 +01:00
|
|
|
|
|
2018-09-13 21:27:12 +02:00
|
|
|
|
<a id="ERR_MANIFEST_ASSERT_INTEGRITY"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_MANIFEST_ASSERT_INTEGRITY`
|
2018-09-13 21:27:12 +02:00
|
|
|
|
|
|
|
|
|
An attempt was made to load a resource, but the resource did not match the
|
2019-10-02 06:31:57 +02:00
|
|
|
|
integrity defined by the policy manifest. See the documentation for [policy][]
|
2018-09-13 21:27:12 +02:00
|
|
|
|
manifests for more information.
|
|
|
|
|
|
2019-07-18 16:01:59 +02:00
|
|
|
|
<a id="ERR_MANIFEST_DEPENDENCY_MISSING"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_MANIFEST_DEPENDENCY_MISSING`
|
2019-07-18 16:01:59 +02:00
|
|
|
|
|
|
|
|
|
An attempt was made to load a resource, but the resource was not listed as a
|
|
|
|
|
dependency from the location that attempted to load it. See the documentation
|
2019-10-02 06:31:57 +02:00
|
|
|
|
for [policy][] manifests for more information.
|
2019-07-18 16:01:59 +02:00
|
|
|
|
|
2018-09-13 21:27:12 +02:00
|
|
|
|
<a id="ERR_MANIFEST_INTEGRITY_MISMATCH"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_MANIFEST_INTEGRITY_MISMATCH`
|
2018-09-13 21:27:12 +02:00
|
|
|
|
|
|
|
|
|
An attempt was made to load a policy manifest, but the manifest had multiple
|
|
|
|
|
entries for a resource which did not match each other. Update the manifest
|
|
|
|
|
entries to match in order to resolve this error. See the documentation for
|
2019-10-02 06:31:57 +02:00
|
|
|
|
[policy][] manifests for more information.
|
2018-09-13 21:27:12 +02:00
|
|
|
|
|
2019-07-18 16:01:59 +02:00
|
|
|
|
<a id="ERR_MANIFEST_INVALID_RESOURCE_FIELD"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_MANIFEST_INVALID_RESOURCE_FIELD`
|
2019-07-18 16:01:59 +02:00
|
|
|
|
|
|
|
|
|
A policy manifest resource had an invalid value for one of its fields. Update
|
|
|
|
|
the manifest entry to match in order to resolve this error. See the
|
2019-10-02 06:31:57 +02:00
|
|
|
|
documentation for [policy][] manifests for more information.
|
2019-07-18 16:01:59 +02:00
|
|
|
|
|
2018-09-13 21:27:12 +02:00
|
|
|
|
<a id="ERR_MANIFEST_PARSE_POLICY"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_MANIFEST_PARSE_POLICY`
|
2018-09-13 21:27:12 +02:00
|
|
|
|
|
|
|
|
|
An attempt was made to load a policy manifest, but the manifest was unable to
|
2019-10-02 06:31:57 +02:00
|
|
|
|
be parsed. See the documentation for [policy][] manifests for more information.
|
2018-09-13 21:27:12 +02:00
|
|
|
|
|
|
|
|
|
<a id="ERR_MANIFEST_TDZ"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_MANIFEST_TDZ`
|
2018-09-13 21:27:12 +02:00
|
|
|
|
|
|
|
|
|
An attempt was made to read from a policy manifest, but the manifest
|
|
|
|
|
initialization has not yet taken place. This is likely a bug in Node.js.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_MANIFEST_UNKNOWN_ONERROR"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_MANIFEST_UNKNOWN_ONERROR`
|
2018-09-13 21:27:12 +02:00
|
|
|
|
|
|
|
|
|
A policy manifest was loaded, but had an unknown value for its "onerror"
|
2019-10-02 06:31:57 +02:00
|
|
|
|
behavior. See the documentation for [policy][] manifests for more information.
|
2018-09-13 21:27:12 +02:00
|
|
|
|
|
2018-04-02 04:36:17 +02:00
|
|
|
|
<a id="ERR_MEMORY_ALLOCATION_FAILED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_MEMORY_ALLOCATION_FAILED`
|
2018-04-02 04:36:17 +02:00
|
|
|
|
|
|
|
|
|
An attempt was made to allocate memory (usually in the C++ layer) but it
|
|
|
|
|
failed.
|
|
|
|
|
|
2017-08-10 12:58:22 +02:00
|
|
|
|
<a id="ERR_METHOD_NOT_IMPLEMENTED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_METHOD_NOT_IMPLEMENTED`
|
2017-08-10 12:58:22 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
A method is required but not implemented.
|
2017-08-10 12:58:22 +02:00
|
|
|
|
|
2017-04-21 20:54:58 +02:00
|
|
|
|
<a id="ERR_MISSING_ARGS"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_MISSING_ARGS`
|
2017-04-21 20:54:58 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
A required argument of a Node.js API was not passed. This is only used for
|
|
|
|
|
strict compliance with the API specification (which in some cases may accept
|
2017-06-21 20:14:45 +02:00
|
|
|
|
`func(undefined)` but not `func()`). In most native Node.js APIs,
|
|
|
|
|
`func(undefined)` and `func()` are treated identically, and the
|
|
|
|
|
[`ERR_INVALID_ARG_TYPE`][] error code may be used instead.
|
|
|
|
|
|
2018-06-24 01:09:49 +02:00
|
|
|
|
<a id="ERR_MISSING_DYNAMIC_INSTANTIATE_HOOK"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_MISSING_DYNAMIC_INSTANTIATE_HOOK`
|
2018-06-24 01:09:49 +02:00
|
|
|
|
|
|
|
|
|
> Stability: 1 - Experimental
|
|
|
|
|
|
2018-08-28 17:28:46 +02:00
|
|
|
|
An [ES Module][] loader hook specified `format: 'dynamic'` but did not provide
|
2018-06-24 01:09:49 +02:00
|
|
|
|
a `dynamicInstantiate` hook.
|
|
|
|
|
|
2019-12-31 02:12:36 +01:00
|
|
|
|
<a id="ERR_MISSING_OPTION"></a>
|
|
|
|
|
### `ERR_MISSING_OPTION`
|
|
|
|
|
|
|
|
|
|
For APIs that accept options objects, some options might be mandatory. This code
|
|
|
|
|
is thrown if a required option is missing.
|
|
|
|
|
|
2017-10-07 23:39:02 +02:00
|
|
|
|
<a id="ERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LIST"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_MISSING_MESSAGE_PORT_IN_TRANSFER_LIST`
|
2017-10-07 23:39:02 +02:00
|
|
|
|
|
|
|
|
|
A `MessagePort` was found in the object passed to a `postMessage()` call,
|
|
|
|
|
but not provided in the `transferList` for that call.
|
|
|
|
|
|
2018-12-23 15:13:32 +01:00
|
|
|
|
<a id="ERR_MISSING_PASSPHRASE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_MISSING_PASSPHRASE`
|
2018-12-23 15:13:32 +01:00
|
|
|
|
|
|
|
|
|
An attempt was made to read an encrypted key without specifying a passphrase.
|
|
|
|
|
|
2017-09-01 17:03:41 +02:00
|
|
|
|
<a id="ERR_MISSING_PLATFORM_FOR_WORKER"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_MISSING_PLATFORM_FOR_WORKER`
|
2017-09-01 17:03:41 +02:00
|
|
|
|
|
|
|
|
|
The V8 platform used by this instance of Node.js does not support creating
|
|
|
|
|
Workers. This is caused by lack of embedder support for Workers. In particular,
|
|
|
|
|
this error will not occur with standard builds of Node.js.
|
|
|
|
|
|
2018-08-28 17:28:46 +02:00
|
|
|
|
<a id="ERR_MODULE_NOT_FOUND"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_MODULE_NOT_FOUND`
|
2017-10-24 19:17:53 +02:00
|
|
|
|
|
|
|
|
|
> Stability: 1 - Experimental
|
|
|
|
|
|
2018-08-28 17:28:46 +02:00
|
|
|
|
An [ES Module][] could not be resolved.
|
2017-10-24 19:17:53 +02:00
|
|
|
|
|
2017-06-21 20:14:45 +02:00
|
|
|
|
<a id="ERR_MULTIPLE_CALLBACK"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_MULTIPLE_CALLBACK`
|
2017-06-21 20:14:45 +02:00
|
|
|
|
|
2017-12-29 05:55:31 +01:00
|
|
|
|
A callback was called more than once.
|
2017-06-21 20:14:45 +02:00
|
|
|
|
|
2018-02-06 06:55:16 +01:00
|
|
|
|
A callback is almost always meant to only be called once as the query
|
2017-06-21 20:14:45 +02:00
|
|
|
|
can either be fulfilled or rejected but not both at the same time. The latter
|
2017-12-29 05:55:31 +01:00
|
|
|
|
would be possible by calling a callback more than once.
|
2017-06-21 20:14:45 +02:00
|
|
|
|
|
2017-09-03 10:27:44 +02:00
|
|
|
|
<a id="ERR_NAPI_CONS_FUNCTION"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_NAPI_CONS_FUNCTION`
|
2017-09-03 10:27:44 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
While using `N-API`, a constructor passed was not a function.
|
2017-09-03 10:27:44 +02:00
|
|
|
|
|
2017-12-26 15:20:39 +01:00
|
|
|
|
<a id="ERR_NAPI_INVALID_DATAVIEW_ARGS"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_NAPI_INVALID_DATAVIEW_ARGS`
|
2017-12-26 15:20:39 +01:00
|
|
|
|
|
|
|
|
|
While calling `napi_create_dataview()`, a given `offset` was outside the bounds
|
|
|
|
|
of the dataview or `offset + length` was larger than a length of given `buffer`.
|
|
|
|
|
|
2018-01-08 15:37:27 +01:00
|
|
|
|
<a id="ERR_NAPI_INVALID_TYPEDARRAY_ALIGNMENT"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_NAPI_INVALID_TYPEDARRAY_ALIGNMENT`
|
2018-01-08 15:37:27 +01:00
|
|
|
|
|
|
|
|
|
While calling `napi_create_typedarray()`, the provided `offset` was not a
|
|
|
|
|
multiple of the element size.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_NAPI_INVALID_TYPEDARRAY_LENGTH"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_NAPI_INVALID_TYPEDARRAY_LENGTH`
|
2018-01-08 15:37:27 +01:00
|
|
|
|
|
|
|
|
|
While calling `napi_create_typedarray()`, `(length * size_of_element) +
|
|
|
|
|
byte_offset` was larger than the length of given `buffer`.
|
|
|
|
|
|
2018-06-17 17:52:49 +02:00
|
|
|
|
<a id="ERR_NAPI_TSFN_CALL_JS"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_NAPI_TSFN_CALL_JS`
|
2018-06-17 17:52:49 +02:00
|
|
|
|
|
|
|
|
|
An error occurred while invoking the JavaScript portion of the thread-safe
|
|
|
|
|
function.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_NAPI_TSFN_GET_UNDEFINED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_NAPI_TSFN_GET_UNDEFINED`
|
2018-06-17 17:52:49 +02:00
|
|
|
|
|
|
|
|
|
An error occurred while attempting to retrieve the JavaScript `undefined`
|
|
|
|
|
value.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_NAPI_TSFN_START_IDLE_LOOP"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_NAPI_TSFN_START_IDLE_LOOP`
|
2018-06-17 17:52:49 +02:00
|
|
|
|
|
|
|
|
|
On the main thread, values are removed from the queue associated with the
|
|
|
|
|
thread-safe function in an idle loop. This error indicates that an error
|
2018-07-01 11:24:22 +02:00
|
|
|
|
has occurred when attempting to start the loop.
|
2018-06-17 17:52:49 +02:00
|
|
|
|
|
|
|
|
|
<a id="ERR_NAPI_TSFN_STOP_IDLE_LOOP"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_NAPI_TSFN_STOP_IDLE_LOOP`
|
2018-06-17 17:52:49 +02:00
|
|
|
|
|
|
|
|
|
Once no more items are left in the queue, the idle loop must be suspended. This
|
|
|
|
|
error indicates that the idle loop has failed to stop.
|
|
|
|
|
|
2017-06-21 20:14:45 +02:00
|
|
|
|
<a id="ERR_NO_CRYPTO"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_NO_CRYPTO`
|
2017-06-21 20:14:45 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An attempt was made to use crypto features while Node.js was not compiled with
|
|
|
|
|
OpenSSL crypto support.
|
2017-06-21 20:14:45 +02:00
|
|
|
|
|
2017-07-30 12:09:13 +02:00
|
|
|
|
<a id="ERR_NO_ICU"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_NO_ICU`
|
2017-07-30 12:09:13 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An attempt was made to use features that require [ICU][], but Node.js was not
|
|
|
|
|
compiled with ICU support.
|
2017-07-30 12:09:13 +02:00
|
|
|
|
|
2019-09-20 07:16:04 +02:00
|
|
|
|
<a id="ERR_NON_CONTEXT_AWARE_DISABLED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_NON_CONTEXT_AWARE_DISABLED`
|
2019-09-20 07:16:04 +02:00
|
|
|
|
|
|
|
|
|
A non-context-aware native addon was loaded in a process that disallows them.
|
|
|
|
|
|
2017-10-24 19:17:53 +02:00
|
|
|
|
<a id="ERR_OUT_OF_RANGE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_OUT_OF_RANGE`
|
2017-10-24 19:17:53 +02:00
|
|
|
|
|
2017-12-13 13:48:43 +01:00
|
|
|
|
A given value is out of the accepted range.
|
2017-10-24 19:17:53 +02:00
|
|
|
|
|
2020-02-03 12:31:12 +01:00
|
|
|
|
<a id="ERR_PACKAGE_PATH_NOT_EXPORTED"></a>
|
|
|
|
|
### `ERR_PACKAGE_PATH_NOT_EXPORTED`
|
|
|
|
|
|
|
|
|
|
The `package.json` [exports][] field does not export the requested subpath.
|
|
|
|
|
Because exports are encapsulated, private internal modules that are not exported
|
|
|
|
|
cannot be imported through the package resolution, unless using an absolute URL.
|
|
|
|
|
|
2020-03-15 01:54:15 +01:00
|
|
|
|
<a id="ERR_PROTO_ACCESS"></a>
|
|
|
|
|
### `ERR_PROTO_ACCESS`
|
|
|
|
|
|
|
|
|
|
Accessing `Object.prototype.__proto__` has been forbidden using
|
|
|
|
|
[`--disable-proto=throw`][]. [`Object.getPrototypeOf`][] and
|
|
|
|
|
[`Object.setPrototypeOf`][] should be used to get and set the prototype of an
|
|
|
|
|
object.
|
|
|
|
|
|
2017-10-24 19:17:53 +02:00
|
|
|
|
<a id="ERR_REQUIRE_ESM"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_REQUIRE_ESM`
|
2017-10-24 19:17:53 +02:00
|
|
|
|
|
|
|
|
|
> Stability: 1 - Experimental
|
|
|
|
|
|
2018-08-28 17:28:46 +02:00
|
|
|
|
An attempt was made to `require()` an [ES Module][].
|
2017-10-24 19:17:53 +02:00
|
|
|
|
|
2017-12-17 12:29:35 +01:00
|
|
|
|
<a id="ERR_SCRIPT_EXECUTION_INTERRUPTED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_SCRIPT_EXECUTION_INTERRUPTED`
|
2017-12-17 12:29:35 +01:00
|
|
|
|
|
2018-02-12 08:31:55 +01:00
|
|
|
|
Script execution was interrupted by `SIGINT` (For example, when Ctrl+C was
|
|
|
|
|
pressed).
|
2017-12-17 12:29:35 +01:00
|
|
|
|
|
2018-06-23 10:48:03 +02:00
|
|
|
|
<a id="ERR_SCRIPT_EXECUTION_TIMEOUT"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_SCRIPT_EXECUTION_TIMEOUT`
|
2018-04-19 12:41:33 +02:00
|
|
|
|
|
|
|
|
|
Script execution timed out, possibly due to bugs in the script being executed.
|
|
|
|
|
|
2017-10-24 19:17:53 +02:00
|
|
|
|
<a id="ERR_SERVER_ALREADY_LISTEN"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_SERVER_ALREADY_LISTEN`
|
2017-10-24 19:17:53 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
The [`server.listen()`][] method was called while a `net.Server` was already
|
|
|
|
|
listening. This applies to all instances of `net.Server`, including HTTP, HTTPS,
|
2017-12-20 00:07:41 +01:00
|
|
|
|
and HTTP/2 `Server` instances.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_SERVER_NOT_RUNNING"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_SERVER_NOT_RUNNING`
|
2017-12-20 00:07:41 +01:00
|
|
|
|
|
|
|
|
|
The [`server.close()`][] method was called when a `net.Server` was not
|
|
|
|
|
running. This applies to all instances of `net.Server`, including HTTP, HTTPS,
|
|
|
|
|
and HTTP/2 `Server` instances.
|
2017-10-24 19:17:53 +02:00
|
|
|
|
|
2017-05-09 20:18:35 +02:00
|
|
|
|
<a id="ERR_SOCKET_ALREADY_BOUND"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_SOCKET_ALREADY_BOUND`
|
2017-06-21 20:14:45 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An attempt was made to bind a socket that has already been bound.
|
2017-05-09 20:18:35 +02:00
|
|
|
|
|
2017-10-24 19:17:53 +02:00
|
|
|
|
<a id="ERR_SOCKET_BAD_BUFFER_SIZE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_SOCKET_BAD_BUFFER_SIZE`
|
2017-10-24 19:17:53 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An invalid (negative) size was passed for either the `recvBufferSize` or
|
|
|
|
|
`sendBufferSize` options in [`dgram.createSocket()`][].
|
2017-10-24 19:17:53 +02:00
|
|
|
|
|
2017-05-09 20:18:35 +02:00
|
|
|
|
<a id="ERR_SOCKET_BAD_PORT"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_SOCKET_BAD_PORT`
|
2017-05-09 20:18:35 +02:00
|
|
|
|
|
2018-09-22 09:28:03 +02:00
|
|
|
|
An API function expecting a port >= 0 and < 65536 received an invalid value.
|
2017-05-09 20:18:35 +02:00
|
|
|
|
|
|
|
|
|
<a id="ERR_SOCKET_BAD_TYPE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_SOCKET_BAD_TYPE`
|
2017-05-09 20:18:35 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An API function expecting a socket type (`udp4` or `udp6`) received an invalid
|
|
|
|
|
value.
|
2017-05-09 20:18:35 +02:00
|
|
|
|
|
2017-10-24 19:17:53 +02:00
|
|
|
|
<a id="ERR_SOCKET_BUFFER_SIZE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_SOCKET_BUFFER_SIZE`
|
2017-10-24 19:17:53 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
While using [`dgram.createSocket()`][], the size of the receive or send `Buffer`
|
|
|
|
|
could not be determined.
|
2017-10-24 19:17:53 +02:00
|
|
|
|
|
2017-09-03 10:27:44 +02:00
|
|
|
|
<a id="ERR_SOCKET_CLOSED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_SOCKET_CLOSED`
|
2017-09-03 10:27:44 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An attempt was made to operate on an already closed socket.
|
2017-09-03 10:27:44 +02:00
|
|
|
|
|
2019-03-16 23:03:48 +01:00
|
|
|
|
<a id="ERR_SOCKET_DGRAM_IS_CONNECTED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_SOCKET_DGRAM_IS_CONNECTED`
|
2019-03-16 23:03:48 +01:00
|
|
|
|
|
|
|
|
|
A [`dgram.connect()`][] call was made on an already connected socket.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_SOCKET_DGRAM_NOT_CONNECTED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_SOCKET_DGRAM_NOT_CONNECTED`
|
2019-03-16 23:03:48 +01:00
|
|
|
|
|
|
|
|
|
A [`dgram.disconnect()`][] or [`dgram.remoteAddress()`][] call was made on a
|
|
|
|
|
disconnected socket.
|
|
|
|
|
|
2017-05-09 20:18:35 +02:00
|
|
|
|
<a id="ERR_SOCKET_DGRAM_NOT_RUNNING"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_SOCKET_DGRAM_NOT_RUNNING`
|
2017-05-09 20:18:35 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
A call was made and the UDP subsystem was not running.
|
2017-05-09 20:18:35 +02:00
|
|
|
|
|
2018-09-13 21:27:12 +02:00
|
|
|
|
<a id="ERR_SRI_PARSE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_SRI_PARSE`
|
2018-09-13 21:27:12 +02:00
|
|
|
|
|
|
|
|
|
A string was provided for a Subresource Integrity check, but was unable to be
|
|
|
|
|
parsed. Check the format of integrity attributes by looking at the
|
|
|
|
|
[Subresource Integrity specification][].
|
|
|
|
|
|
2017-10-29 16:36:32 +01:00
|
|
|
|
<a id="ERR_STREAM_CANNOT_PIPE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_STREAM_CANNOT_PIPE`
|
2017-10-29 16:36:32 +01:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An attempt was made to call [`stream.pipe()`][] on a [`Writable`][] stream.
|
2017-10-29 16:36:32 +01:00
|
|
|
|
|
2018-06-23 12:05:42 +02:00
|
|
|
|
<a id="ERR_STREAM_DESTROYED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_STREAM_DESTROYED`
|
2018-06-23 12:05:42 +02:00
|
|
|
|
|
|
|
|
|
A stream method was called that cannot complete because the stream was
|
|
|
|
|
destroyed using `stream.destroy()`.
|
|
|
|
|
|
2019-07-14 22:11:06 +02:00
|
|
|
|
<a id="ERR_STREAM_ALREADY_FINISHED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_STREAM_ALREADY_FINISHED`
|
2019-07-14 22:11:06 +02:00
|
|
|
|
|
|
|
|
|
A stream method was called that cannot complete because the stream was
|
|
|
|
|
finished.
|
|
|
|
|
|
2017-10-29 16:36:32 +01:00
|
|
|
|
<a id="ERR_STREAM_NULL_VALUES"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_STREAM_NULL_VALUES`
|
2017-10-29 16:36:32 +01:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An attempt was made to call [`stream.write()`][] with a `null` chunk.
|
2017-10-29 16:36:32 +01:00
|
|
|
|
|
2018-04-04 16:52:19 +02:00
|
|
|
|
<a id="ERR_STREAM_PREMATURE_CLOSE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_STREAM_PREMATURE_CLOSE`
|
2018-04-04 16:52:19 +02:00
|
|
|
|
|
|
|
|
|
An error returned by `stream.finished()` and `stream.pipeline()`, when a stream
|
|
|
|
|
or a pipeline ends non gracefully with no explicit error.
|
|
|
|
|
|
2017-08-26 09:53:27 +02:00
|
|
|
|
<a id="ERR_STREAM_PUSH_AFTER_EOF"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_STREAM_PUSH_AFTER_EOF`
|
2017-08-26 09:53:27 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An attempt was made to call [`stream.push()`][] after a `null`(EOF) had been
|
|
|
|
|
pushed to the stream.
|
2017-08-26 09:53:27 +02:00
|
|
|
|
|
|
|
|
|
<a id="ERR_STREAM_UNSHIFT_AFTER_END_EVENT"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_STREAM_UNSHIFT_AFTER_END_EVENT`
|
2017-08-26 09:53:27 +02:00
|
|
|
|
|
2018-04-09 18:30:22 +02:00
|
|
|
|
An attempt was made to call [`stream.unshift()`][] after the `'end'` event was
|
2017-11-09 19:10:37 +01:00
|
|
|
|
emitted.
|
2017-08-26 09:53:27 +02:00
|
|
|
|
|
2017-06-22 02:38:41 +02:00
|
|
|
|
<a id="ERR_STREAM_WRAP"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_STREAM_WRAP`
|
2017-06-21 20:14:45 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
Prevents an abort if a string decoder was set on the Socket or if the decoder
|
|
|
|
|
is in `objectMode`.
|
2017-06-21 20:14:45 +02:00
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
const Socket = require('net').Socket;
|
|
|
|
|
const instance = new Socket();
|
|
|
|
|
|
2017-10-21 22:13:09 +02:00
|
|
|
|
instance.setEncoding('utf8');
|
2017-06-21 20:14:45 +02:00
|
|
|
|
```
|
|
|
|
|
|
2017-10-29 16:36:32 +01:00
|
|
|
|
<a id="ERR_STREAM_WRITE_AFTER_END"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_STREAM_WRITE_AFTER_END`
|
2017-10-29 16:36:32 +01:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An attempt was made to call [`stream.write()`][] after `stream.end()` has been
|
|
|
|
|
called.
|
2017-10-29 16:36:32 +01:00
|
|
|
|
|
2018-06-23 12:05:42 +02:00
|
|
|
|
<a id="ERR_STRING_TOO_LONG"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_STRING_TOO_LONG`
|
2018-06-23 12:05:42 +02:00
|
|
|
|
|
|
|
|
|
An attempt has been made to create a string longer than the maximum allowed
|
|
|
|
|
length.
|
|
|
|
|
|
2018-09-05 16:22:49 +02:00
|
|
|
|
<a id="ERR_SYNTHETIC"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_SYNTHETIC`
|
2018-09-05 16:22:49 +02:00
|
|
|
|
|
2019-01-28 01:08:35 +01:00
|
|
|
|
An artificial error object used to capture the call stack for diagnostic
|
|
|
|
|
reports.
|
2018-09-05 16:22:49 +02:00
|
|
|
|
|
2017-10-28 01:25:14 +02:00
|
|
|
|
<a id="ERR_SYSTEM_ERROR"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_SYSTEM_ERROR`
|
2017-10-28 01:25:14 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An unspecified or non-specific system error has occurred within the Node.js
|
|
|
|
|
process. The error object will have an `err.info` object property with
|
|
|
|
|
additional details.
|
2017-10-28 01:25:14 +02:00
|
|
|
|
|
2017-09-03 10:27:44 +02:00
|
|
|
|
<a id="ERR_TLS_CERT_ALTNAME_INVALID"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_TLS_CERT_ALTNAME_INVALID`
|
2017-09-03 10:27:44 +02:00
|
|
|
|
|
2020-01-12 16:24:25 +01:00
|
|
|
|
While using TLS, the host name/IP of the peer did not match any of the
|
2018-04-29 19:46:41 +02:00
|
|
|
|
`subjectAltNames` in its certificate.
|
2017-09-03 10:27:44 +02:00
|
|
|
|
|
|
|
|
|
<a id="ERR_TLS_DH_PARAM_SIZE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_TLS_DH_PARAM_SIZE`
|
2017-02-10 19:18:19 +01:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
While using TLS, the parameter offered for the Diffie-Hellman (`DH`)
|
2017-09-03 10:27:44 +02:00
|
|
|
|
key-agreement protocol is too small. By default, the key length must be greater
|
|
|
|
|
than or equal to 1024 bits to avoid vulnerabilities, even though it is strongly
|
|
|
|
|
recommended to use 2048 bits or larger for stronger security.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_TLS_HANDSHAKE_TIMEOUT"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_TLS_HANDSHAKE_TIMEOUT`
|
2017-09-03 10:27:44 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
A TLS/SSL handshake timed out. In this case, the server must also abort the
|
|
|
|
|
connection.
|
2017-09-03 10:27:44 +02:00
|
|
|
|
|
2020-02-22 20:18:56 +01:00
|
|
|
|
<a id="ERR_TLS_INVALID_CONTEXT"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_TLS_INVALID_CONTEXT`
|
2019-11-29 21:02:04 +01:00
|
|
|
|
<!-- YAML
|
2019-12-03 11:41:12 +01:00
|
|
|
|
added: v13.3.0
|
2019-11-29 21:02:04 +01:00
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
The context must be a `SecureContext`.
|
|
|
|
|
|
2020-02-15 18:55:59 +01:00
|
|
|
|
<a id="ERR_TLS_INVALID_STATE"></a>
|
|
|
|
|
### `ERR_TLS_INVALID_STATE`
|
|
|
|
|
<!-- YAML
|
2020-03-01 00:28:30 +01:00
|
|
|
|
added: v13.10.0
|
2020-02-15 18:55:59 +01:00
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
The TLS socket must be connected and securily established. Ensure the 'secure'
|
2020-03-08 02:35:00 +01:00
|
|
|
|
event is emitted before continuing.
|
2020-02-15 18:55:59 +01:00
|
|
|
|
|
2018-11-21 00:30:34 +01:00
|
|
|
|
<a id="ERR_TLS_INVALID_PROTOCOL_METHOD"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_TLS_INVALID_PROTOCOL_METHOD`
|
2018-11-21 00:30:34 +01:00
|
|
|
|
|
|
|
|
|
The specified `secureProtocol` method is invalid. It is either unknown, or
|
|
|
|
|
disabled because it is insecure.
|
|
|
|
|
|
2018-05-06 06:52:34 +02:00
|
|
|
|
<a id="ERR_TLS_INVALID_PROTOCOL_VERSION"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_TLS_INVALID_PROTOCOL_VERSION`
|
2018-05-06 06:52:34 +02:00
|
|
|
|
|
|
|
|
|
Valid TLS protocol versions are `'TLSv1'`, `'TLSv1.1'`, or `'TLSv1.2'`.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_TLS_PROTOCOL_VERSION_CONFLICT"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_TLS_PROTOCOL_VERSION_CONFLICT`
|
2018-05-06 06:52:34 +02:00
|
|
|
|
|
|
|
|
|
Attempting to set a TLS protocol `minVersion` or `maxVersion` conflicts with an
|
|
|
|
|
attempt to set the `secureProtocol` explicitly. Use one mechanism or the other.
|
|
|
|
|
|
2018-06-23 12:05:42 +02:00
|
|
|
|
<a id="ERR_TLS_RENEGOTIATION_DISABLED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_TLS_RENEGOTIATION_DISABLED`
|
2018-06-23 12:05:42 +02:00
|
|
|
|
|
|
|
|
|
An attempt was made to renegotiate TLS on a socket instance with TLS disabled.
|
|
|
|
|
|
2017-09-03 10:27:44 +02:00
|
|
|
|
<a id="ERR_TLS_REQUIRED_SERVER_NAME"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_TLS_REQUIRED_SERVER_NAME`
|
2017-09-03 10:27:44 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
While using TLS, the `server.addContext()` method was called without providing
|
2020-01-12 16:24:25 +01:00
|
|
|
|
a host name in the first parameter.
|
2017-09-03 10:27:44 +02:00
|
|
|
|
|
|
|
|
|
<a id="ERR_TLS_SESSION_ATTACK"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_TLS_SESSION_ATTACK`
|
2017-09-03 10:27:44 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An excessive amount of TLS renegotiations is detected, which is a potential
|
|
|
|
|
vector for denial-of-service attacks.
|
2017-09-03 10:27:44 +02:00
|
|
|
|
|
2018-01-10 20:33:49 +01:00
|
|
|
|
<a id="ERR_TLS_SNI_FROM_SERVER"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_TLS_SNI_FROM_SERVER`
|
2018-01-10 20:33:49 +01:00
|
|
|
|
|
|
|
|
|
An attempt was made to issue Server Name Indication from a TLS server-side
|
|
|
|
|
socket, which is only valid from a client.
|
|
|
|
|
|
2018-10-29 09:38:43 +01:00
|
|
|
|
<a id="ERR_TLS_PSK_SET_IDENTIY_HINT_FAILED"></a>
|
|
|
|
|
### ERR_TLS_PSK_SET_IDENTIY_HINT_FAILED
|
|
|
|
|
|
|
|
|
|
Failed to set PSK identity hint. Hint may be too long.
|
|
|
|
|
|
2018-04-04 03:05:33 +02:00
|
|
|
|
<a id="ERR_TRACE_EVENTS_CATEGORY_REQUIRED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_TRACE_EVENTS_CATEGORY_REQUIRED`
|
2018-04-04 03:05:33 +02:00
|
|
|
|
|
|
|
|
|
The `trace_events.createTracing()` method requires at least one trace event
|
|
|
|
|
category.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_TRACE_EVENTS_UNAVAILABLE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_TRACE_EVENTS_UNAVAILABLE`
|
2018-04-04 03:05:33 +02:00
|
|
|
|
|
|
|
|
|
The `trace_events` module could not be loaded because Node.js was compiled with
|
|
|
|
|
the `--without-v8-platform` flag.
|
|
|
|
|
|
2018-07-23 18:10:28 +02:00
|
|
|
|
<a id="ERR_TRANSFERRING_EXTERNALIZED_SHAREDARRAYBUFFER"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_TRANSFERRING_EXTERNALIZED_SHAREDARRAYBUFFER`
|
2018-07-23 18:10:28 +02:00
|
|
|
|
|
|
|
|
|
A `SharedArrayBuffer` whose memory is not managed by the JavaScript engine
|
|
|
|
|
or by Node.js was encountered during serialization. Such a `SharedArrayBuffer`
|
|
|
|
|
cannot be serialized.
|
|
|
|
|
|
|
|
|
|
This can only happen when native addons create `SharedArrayBuffer`s in
|
|
|
|
|
"externalized" mode, or put existing `SharedArrayBuffer` into externalized mode.
|
|
|
|
|
|
2017-09-03 10:27:44 +02:00
|
|
|
|
<a id="ERR_TRANSFORM_ALREADY_TRANSFORMING"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_TRANSFORM_ALREADY_TRANSFORMING`
|
2017-09-03 10:27:44 +02:00
|
|
|
|
|
2018-04-29 19:46:41 +02:00
|
|
|
|
A `Transform` stream finished while it was still transforming.
|
2017-09-03 10:27:44 +02:00
|
|
|
|
|
|
|
|
|
<a id="ERR_TRANSFORM_WITH_LENGTH_0"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_TRANSFORM_WITH_LENGTH_0`
|
2017-09-03 10:27:44 +02:00
|
|
|
|
|
2018-04-29 19:46:41 +02:00
|
|
|
|
A `Transform` stream finished with data still in the write buffer.
|
2017-02-10 19:18:19 +01:00
|
|
|
|
|
2018-03-20 17:46:30 +01:00
|
|
|
|
<a id="ERR_TTY_INIT_FAILED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_TTY_INIT_FAILED`
|
2018-03-20 17:46:30 +01:00
|
|
|
|
|
|
|
|
|
The initialization of a TTY failed due to a system error.
|
|
|
|
|
|
2017-11-20 19:57:20 +01:00
|
|
|
|
<a id="ERR_UNCAUGHT_EXCEPTION_CAPTURE_ALREADY_SET"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_UNCAUGHT_EXCEPTION_CAPTURE_ALREADY_SET`
|
2017-11-20 19:57:20 +01:00
|
|
|
|
|
|
|
|
|
[`process.setUncaughtExceptionCaptureCallback()`][] was called twice,
|
|
|
|
|
without first resetting the callback to `null`.
|
|
|
|
|
|
|
|
|
|
This error is designed to prevent accidentally overwriting a callback registered
|
|
|
|
|
from another module.
|
|
|
|
|
|
2017-07-22 13:23:04 +02:00
|
|
|
|
<a id="ERR_UNESCAPED_CHARACTERS"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_UNESCAPED_CHARACTERS`
|
2017-07-22 13:23:04 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
A string that contained unescaped characters was received.
|
2017-07-22 13:23:04 +02:00
|
|
|
|
|
2017-09-26 06:43:32 +02:00
|
|
|
|
<a id="ERR_UNHANDLED_ERROR"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_UNHANDLED_ERROR`
|
2017-09-26 06:43:32 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An unhandled error occurred (for instance, when an `'error'` event is emitted
|
|
|
|
|
by an [`EventEmitter`][] but an `'error'` handler is not registered).
|
2017-09-26 06:43:32 +02:00
|
|
|
|
|
2018-06-23 11:40:55 +02:00
|
|
|
|
<a id="ERR_UNKNOWN_BUILTIN_MODULE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_UNKNOWN_BUILTIN_MODULE`
|
2018-06-23 11:40:55 +02:00
|
|
|
|
|
|
|
|
|
Used to identify a specific kind of internal Node.js error that should not
|
|
|
|
|
typically be triggered by user code. Instances of this error point to an
|
|
|
|
|
internal bug within the Node.js binary itself.
|
|
|
|
|
|
2018-04-12 11:54:19 +02:00
|
|
|
|
<a id="ERR_UNKNOWN_CREDENTIAL"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_UNKNOWN_CREDENTIAL`
|
2018-04-12 11:54:19 +02:00
|
|
|
|
|
|
|
|
|
A Unix group or user identifier that does not exist was passed.
|
|
|
|
|
|
2017-06-29 05:58:39 +02:00
|
|
|
|
<a id="ERR_UNKNOWN_ENCODING"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_UNKNOWN_ENCODING`
|
2017-06-29 05:58:39 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An invalid or unknown encoding option was passed to an API.
|
2017-06-29 05:58:39 +02:00
|
|
|
|
|
2017-10-24 19:17:53 +02:00
|
|
|
|
<a id="ERR_UNKNOWN_FILE_EXTENSION"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_UNKNOWN_FILE_EXTENSION`
|
2017-10-24 19:17:53 +02:00
|
|
|
|
|
|
|
|
|
> Stability: 1 - Experimental
|
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An attempt was made to load a module with an unknown or unsupported file
|
2017-10-24 19:17:53 +02:00
|
|
|
|
extension.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_UNKNOWN_MODULE_FORMAT"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_UNKNOWN_MODULE_FORMAT`
|
2017-10-24 19:17:53 +02:00
|
|
|
|
|
|
|
|
|
> Stability: 1 - Experimental
|
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An attempt was made to load a module with an unknown or unsupported format.
|
2017-10-24 19:17:53 +02:00
|
|
|
|
|
2017-02-10 21:08:49 +01:00
|
|
|
|
<a id="ERR_UNKNOWN_SIGNAL"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_UNKNOWN_SIGNAL`
|
2017-02-10 21:08:49 +01:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
An invalid or unknown process signal was passed to an API expecting a valid
|
|
|
|
|
signal (such as [`subprocess.kill()`][]).
|
2017-02-10 21:08:49 +01:00
|
|
|
|
|
2019-12-29 13:56:43 +01:00
|
|
|
|
<a id="ERR_UNSUPPORTED_ESM_URL_SCHEME"></a>
|
|
|
|
|
### `ERR_UNSUPPORTED_ESM_URL_SCHEME`
|
|
|
|
|
|
|
|
|
|
`import` with URL schemes other than `file` and `data` is unsupported.
|
|
|
|
|
|
2017-06-21 20:14:45 +02:00
|
|
|
|
<a id="ERR_V8BREAKITERATOR"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_V8BREAKITERATOR`
|
2017-06-21 20:14:45 +02:00
|
|
|
|
|
2018-04-29 19:46:41 +02:00
|
|
|
|
The V8 `BreakIterator` API was used but the full ICU data set is not installed.
|
2017-02-10 19:18:19 +01:00
|
|
|
|
|
2017-09-03 10:27:44 +02:00
|
|
|
|
<a id="ERR_VALID_PERFORMANCE_ENTRY_TYPE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_VALID_PERFORMANCE_ENTRY_TYPE`
|
2017-09-03 10:27:44 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
While using the Performance Timing API (`perf_hooks`), no valid performance
|
2017-09-03 10:27:44 +02:00
|
|
|
|
entry types were found.
|
|
|
|
|
|
2018-08-18 00:26:34 +02:00
|
|
|
|
<a id="ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_VM_DYNAMIC_IMPORT_CALLBACK_MISSING`
|
2018-08-18 00:26:34 +02:00
|
|
|
|
|
|
|
|
|
A dynamic import callback was not specified.
|
|
|
|
|
|
2018-01-14 08:35:51 +01:00
|
|
|
|
<a id="ERR_VM_MODULE_ALREADY_LINKED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_VM_MODULE_ALREADY_LINKED`
|
2018-01-14 08:35:51 +01:00
|
|
|
|
|
|
|
|
|
The module attempted to be linked is not eligible for linking, because of one of
|
|
|
|
|
the following reasons:
|
|
|
|
|
|
2019-09-13 06:22:29 +02:00
|
|
|
|
* It has already been linked (`linkingStatus` is `'linked'`)
|
|
|
|
|
* It is being linked (`linkingStatus` is `'linking'`)
|
|
|
|
|
* Linking has failed for this module (`linkingStatus` is `'errored'`)
|
2018-01-14 08:35:51 +01:00
|
|
|
|
|
2020-01-09 17:34:55 +01:00
|
|
|
|
<a id="ERR_VM_MODULE_CACHED_DATA_REJECTED"></a>
|
|
|
|
|
### `ERR_VM_MODULE_CACHED_DATA_REJECTED`
|
|
|
|
|
|
|
|
|
|
The `cachedData` option passed to a module constructor is invalid.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_VM_MODULE_CANNOT_CREATE_CACHED_DATA"></a>
|
|
|
|
|
### `ERR_VM_MODULE_CANNOT_CREATE_CACHED_DATA`
|
|
|
|
|
|
|
|
|
|
Cached data cannot be created for modules which have already been evaluated.
|
|
|
|
|
|
2018-01-14 08:35:51 +01:00
|
|
|
|
<a id="ERR_VM_MODULE_DIFFERENT_CONTEXT"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_VM_MODULE_DIFFERENT_CONTEXT`
|
2018-01-14 08:35:51 +01:00
|
|
|
|
|
|
|
|
|
The module being returned from the linker function is from a different context
|
|
|
|
|
than the parent module. Linked modules must share the same context.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_VM_MODULE_LINKING_ERRORED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_VM_MODULE_LINKING_ERRORED`
|
2018-01-14 08:35:51 +01:00
|
|
|
|
|
|
|
|
|
The linker function returned a module for which linking has failed.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_VM_MODULE_NOT_MODULE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_VM_MODULE_NOT_MODULE`
|
2018-01-14 08:35:51 +01:00
|
|
|
|
|
2019-10-05 05:08:00 +02:00
|
|
|
|
The fulfilled value of a linking promise is not a `vm.Module` object.
|
2018-01-14 08:35:51 +01:00
|
|
|
|
|
|
|
|
|
<a id="ERR_VM_MODULE_STATUS"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_VM_MODULE_STATUS`
|
2018-01-14 08:35:51 +01:00
|
|
|
|
|
|
|
|
|
The current module's status does not allow for this operation. The specific
|
|
|
|
|
meaning of the error depends on the specific function.
|
|
|
|
|
|
2019-09-04 23:56:51 +02:00
|
|
|
|
<a id="ERR_WASI_ALREADY_STARTED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_WASI_ALREADY_STARTED`
|
2019-09-04 23:56:51 +02:00
|
|
|
|
|
|
|
|
|
The WASI instance has already started.
|
|
|
|
|
|
2020-02-03 06:06:35 +01:00
|
|
|
|
<a id="ERR_WORKER_INIT_FAILED"></a>
|
|
|
|
|
### `ERR_WORKER_INIT_FAILED`
|
|
|
|
|
|
|
|
|
|
The `Worker` initialization failed.
|
|
|
|
|
|
2019-01-04 19:02:25 +01:00
|
|
|
|
<a id="ERR_WORKER_INVALID_EXEC_ARGV"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_WORKER_INVALID_EXEC_ARGV`
|
2019-01-04 19:02:25 +01:00
|
|
|
|
|
|
|
|
|
The `execArgv` option passed to the `Worker` constructor contains
|
|
|
|
|
invalid flags.
|
|
|
|
|
|
2020-01-29 17:41:26 +01:00
|
|
|
|
<a id="ERR_WORKER_NOT_RUNNING"></a>
|
|
|
|
|
### `ERR_WORKER_NOT_RUNNING`
|
|
|
|
|
|
|
|
|
|
An operation failed because the `Worker` instance is not currently running.
|
|
|
|
|
|
2019-03-08 19:35:40 +01:00
|
|
|
|
<a id="ERR_WORKER_OUT_OF_MEMORY"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_WORKER_OUT_OF_MEMORY`
|
2019-03-08 19:35:40 +01:00
|
|
|
|
|
|
|
|
|
The `Worker` instance terminated because it reached its memory limit.
|
|
|
|
|
|
2018-06-26 17:31:36 +02:00
|
|
|
|
<a id="ERR_WORKER_PATH"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_WORKER_PATH`
|
2017-09-01 17:03:41 +02:00
|
|
|
|
|
2018-06-26 17:31:36 +02:00
|
|
|
|
The path for the main script of a worker is neither an absolute path
|
|
|
|
|
nor a relative path starting with `./` or `../`.
|
2017-09-01 17:03:41 +02:00
|
|
|
|
|
|
|
|
|
<a id="ERR_WORKER_UNSERIALIZABLE_ERROR"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_WORKER_UNSERIALIZABLE_ERROR`
|
2017-09-01 17:03:41 +02:00
|
|
|
|
|
|
|
|
|
All attempts at serializing an uncaught exception from a worker thread failed.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_WORKER_UNSUPPORTED_EXTENSION"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_WORKER_UNSUPPORTED_EXTENSION`
|
2017-09-01 17:03:41 +02:00
|
|
|
|
|
|
|
|
|
The pathname used for the main script of a worker has an
|
|
|
|
|
unknown file extension.
|
|
|
|
|
|
2019-01-15 21:39:43 +01:00
|
|
|
|
<a id="ERR_WORKER_UNSUPPORTED_OPERATION"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_WORKER_UNSUPPORTED_OPERATION`
|
2019-01-15 21:39:43 +01:00
|
|
|
|
|
|
|
|
|
The requested functionality is not supported in worker threads.
|
|
|
|
|
|
2017-10-27 02:09:30 +02:00
|
|
|
|
<a id="ERR_ZLIB_INITIALIZATION_FAILED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_ZLIB_INITIALIZATION_FAILED`
|
2017-10-27 02:09:30 +02:00
|
|
|
|
|
2017-11-09 19:10:37 +01:00
|
|
|
|
Creation of a [`zlib`][] object failed due to incorrect configuration.
|
2017-10-27 02:09:30 +02:00
|
|
|
|
|
2018-10-29 23:59:51 +01:00
|
|
|
|
<a id="HPE_HEADER_OVERFLOW"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `HPE_HEADER_OVERFLOW`
|
2018-11-28 18:02:17 +01:00
|
|
|
|
<!-- YAML
|
|
|
|
|
changes:
|
2018-12-05 21:29:36 +01:00
|
|
|
|
- version: v11.4.0
|
2018-11-28 18:02:17 +01:00
|
|
|
|
pr-url: https://github.com/nodejs/node/commit/186035243fad247e3955f
|
|
|
|
|
description: Max header size in `http_parser` was set to 8KB.
|
|
|
|
|
-->
|
2018-10-29 23:59:51 +01:00
|
|
|
|
|
|
|
|
|
Too much HTTP header data was received. In order to protect against malicious or
|
2018-11-28 18:02:17 +01:00
|
|
|
|
malconfigured clients, if more than 8KB of HTTP header data is received then
|
2018-10-29 23:59:51 +01:00
|
|
|
|
HTTP parsing will abort without a request or response object being created, and
|
|
|
|
|
an `Error` with this code will be emitted.
|
|
|
|
|
|
2018-07-19 21:41:51 +02:00
|
|
|
|
<a id="MODULE_NOT_FOUND"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `MODULE_NOT_FOUND`
|
2019-01-28 20:24:37 +01:00
|
|
|
|
<!-- YAML
|
|
|
|
|
changes:
|
2019-03-22 14:19:46 +01:00
|
|
|
|
- version: v12.0.0
|
2019-01-28 20:24:37 +01:00
|
|
|
|
pr-url: https://github.com/nodejs/node/pull/25690
|
|
|
|
|
description: Added `requireStack` property.
|
|
|
|
|
-->
|
2018-07-19 21:41:51 +02:00
|
|
|
|
A module file could not be resolved while attempting a [`require()`][] or
|
|
|
|
|
`import` operation.
|
|
|
|
|
|
2018-08-02 08:58:19 +02:00
|
|
|
|
## Legacy Node.js Error Codes
|
|
|
|
|
|
|
|
|
|
> Stability: 0 - Deprecated. These error codes are either inconsistent, or have
|
|
|
|
|
> been removed.
|
|
|
|
|
|
2019-06-02 16:46:13 +02:00
|
|
|
|
<a id="ERR_CANNOT_TRANSFER_OBJECT"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_CANNOT_TRANSFER_OBJECT`
|
2019-06-02 16:46:13 +02:00
|
|
|
|
<!--
|
|
|
|
|
added: v10.5.0
|
2019-06-17 21:31:37 +02:00
|
|
|
|
removed: v12.5.0
|
2019-06-02 16:46:13 +02:00
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
The value passed to `postMessage()` contained an object that is not supported
|
|
|
|
|
for transferring.
|
|
|
|
|
|
2019-03-07 10:18:03 +01:00
|
|
|
|
<a id="ERR_CLOSED_MESSAGE_PORT"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_CLOSED_MESSAGE_PORT`
|
2019-03-07 10:18:03 +01:00
|
|
|
|
<!-- YAML
|
|
|
|
|
added: v10.5.0
|
2019-03-13 22:59:36 +01:00
|
|
|
|
removed: v11.12.0
|
2019-03-07 10:18:03 +01:00
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
There was an attempt to use a `MessagePort` instance in a closed
|
|
|
|
|
state, usually after `.close()` has been called.
|
|
|
|
|
|
2019-10-01 13:59:25 +02:00
|
|
|
|
<a id="ERR_CRYPTO_HASH_DIGEST_NO_UTF16"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_CRYPTO_HASH_DIGEST_NO_UTF16`
|
2019-10-01 13:59:25 +02:00
|
|
|
|
<!-- YAML
|
|
|
|
|
added: v9.0.0
|
2019-10-10 14:31:33 +02:00
|
|
|
|
removed: v12.12.0
|
2019-10-01 13:59:25 +02:00
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
The UTF-16 encoding was used with [`hash.digest()`][]. While the
|
|
|
|
|
`hash.digest()` method does allow an `encoding` argument to be passed in,
|
|
|
|
|
causing the method to return a string rather than a `Buffer`, the UTF-16
|
|
|
|
|
encoding (e.g. `ucs` or `utf16le`) is not supported.
|
|
|
|
|
|
2018-08-02 08:58:19 +02:00
|
|
|
|
<a id="ERR_HTTP2_FRAME_ERROR"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_FRAME_ERROR`
|
2018-08-02 08:58:19 +02:00
|
|
|
|
<!-- YAML
|
|
|
|
|
added: v9.0.0
|
|
|
|
|
removed: v10.0.0
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
Used when a failure occurs sending an individual frame on the HTTP/2
|
|
|
|
|
session.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_HTTP2_HEADERS_OBJECT"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_HEADERS_OBJECT`
|
2018-08-02 08:58:19 +02:00
|
|
|
|
<!-- YAML
|
|
|
|
|
added: v9.0.0
|
|
|
|
|
removed: v10.0.0
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
Used when an HTTP/2 Headers Object is expected.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_HTTP2_HEADER_REQUIRED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_HEADER_REQUIRED`
|
2018-08-02 08:58:19 +02:00
|
|
|
|
<!-- YAML
|
|
|
|
|
added: v9.0.0
|
|
|
|
|
removed: v10.0.0
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
Used when a required header is missing in an HTTP/2 message.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_HTTP2_INFO_HEADERS_AFTER_RESPOND"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_INFO_HEADERS_AFTER_RESPOND`
|
2018-08-02 08:58:19 +02:00
|
|
|
|
<!-- YAML
|
|
|
|
|
added: v9.0.0
|
|
|
|
|
removed: v10.0.0
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
HTTP/2 informational headers must only be sent *prior* to calling the
|
|
|
|
|
`Http2Stream.prototype.respond()` method.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_HTTP2_STREAM_CLOSED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP2_STREAM_CLOSED`
|
2018-08-02 08:58:19 +02:00
|
|
|
|
<!-- YAML
|
|
|
|
|
added: v9.0.0
|
|
|
|
|
removed: v10.0.0
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
Used when an action has been performed on an HTTP/2 Stream that has already
|
|
|
|
|
been closed.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_HTTP_INVALID_CHAR"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_HTTP_INVALID_CHAR`
|
2018-08-02 08:58:19 +02:00
|
|
|
|
<!-- YAML
|
|
|
|
|
added: v9.0.0
|
|
|
|
|
removed: v10.0.0
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
Used when an invalid character is found in an HTTP response status message
|
|
|
|
|
(reason phrase).
|
|
|
|
|
|
2018-09-20 05:04:47 +02:00
|
|
|
|
<a id="ERR_INDEX_OUT_OF_RANGE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_INDEX_OUT_OF_RANGE`
|
2018-09-20 05:04:47 +02:00
|
|
|
|
<!-- YAML
|
|
|
|
|
added: v10.0.0
|
2018-10-03 01:01:19 +02:00
|
|
|
|
removed: v11.0.0
|
2018-09-20 05:04:47 +02:00
|
|
|
|
-->
|
|
|
|
|
A given index was out of the accepted range (e.g. negative offsets).
|
|
|
|
|
|
2018-08-02 08:58:19 +02:00
|
|
|
|
<a id="ERR_NAPI_CONS_PROTOTYPE_OBJECT"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_NAPI_CONS_PROTOTYPE_OBJECT`
|
2018-08-02 08:58:19 +02:00
|
|
|
|
<!-- YAML
|
|
|
|
|
added: v9.0.0
|
|
|
|
|
removed: v10.0.0
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
Used by the `N-API` when `Constructor.prototype` is not an object.
|
|
|
|
|
|
2019-04-02 00:01:29 +02:00
|
|
|
|
<a id="ERR_NO_LONGER_SUPPORTED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_NO_LONGER_SUPPORTED`
|
2019-04-02 00:01:29 +02:00
|
|
|
|
|
|
|
|
|
A Node.js API was called in an unsupported manner, such as
|
|
|
|
|
`Buffer.write(string, encoding, offset[, length])`.
|
|
|
|
|
|
2018-08-02 08:58:19 +02:00
|
|
|
|
<a id="ERR_OUTOFMEMORY"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_OUTOFMEMORY`
|
2018-08-02 08:58:19 +02:00
|
|
|
|
<!-- YAML
|
|
|
|
|
added: v9.0.0
|
|
|
|
|
removed: v10.0.0
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
Used generically to identify that an operation caused an out of memory
|
|
|
|
|
condition.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_PARSE_HISTORY_DATA"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_PARSE_HISTORY_DATA`
|
2018-08-02 08:58:19 +02:00
|
|
|
|
<!-- YAML
|
|
|
|
|
added: v9.0.0
|
|
|
|
|
removed: v10.0.0
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
The `repl` module was unable to parse data from the REPL history file.
|
|
|
|
|
|
2020-02-26 02:51:40 +01:00
|
|
|
|
<a id="ERR_SOCKET_CANNOT_SEND"></a>
|
|
|
|
|
### `ERR_SOCKET_CANNOT_SEND`
|
|
|
|
|
<!-- YAML
|
|
|
|
|
added: v9.0.0
|
|
|
|
|
removed: REPLACEME
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
Data could be sent on a socket.
|
|
|
|
|
|
2018-09-24 11:51:14 +02:00
|
|
|
|
<a id="ERR_STDERR_CLOSE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_STDERR_CLOSE`
|
2018-09-24 11:51:14 +02:00
|
|
|
|
<!-- YAML
|
2018-10-07 14:09:45 +02:00
|
|
|
|
removed: v10.12.0
|
2018-09-24 11:51:14 +02:00
|
|
|
|
changes:
|
2018-10-07 14:09:45 +02:00
|
|
|
|
- version: v10.12.0
|
2018-09-24 11:51:14 +02:00
|
|
|
|
pr-url: https://github.com/nodejs/node/pull/23053
|
|
|
|
|
description: Rather than emitting an error, `process.stderr.end()` now
|
|
|
|
|
only closes the stream side but not the underlying resource,
|
|
|
|
|
making this error obsolete.
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
An attempt was made to close the `process.stderr` stream. By design, Node.js
|
|
|
|
|
does not allow `stdout` or `stderr` streams to be closed by user code.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_STDOUT_CLOSE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_STDOUT_CLOSE`
|
2018-09-24 11:51:14 +02:00
|
|
|
|
<!-- YAML
|
2018-10-07 14:09:45 +02:00
|
|
|
|
removed: v10.12.0
|
2018-09-24 11:51:14 +02:00
|
|
|
|
changes:
|
2018-10-07 14:09:45 +02:00
|
|
|
|
- version: v10.12.0
|
2018-09-24 11:51:14 +02:00
|
|
|
|
pr-url: https://github.com/nodejs/node/pull/23053
|
|
|
|
|
description: Rather than emitting an error, `process.stderr.end()` now
|
|
|
|
|
only closes the stream side but not the underlying resource,
|
|
|
|
|
making this error obsolete.
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
An attempt was made to close the `process.stdout` stream. By design, Node.js
|
|
|
|
|
does not allow `stdout` or `stderr` streams to be closed by user code.
|
|
|
|
|
|
2018-08-02 08:58:19 +02:00
|
|
|
|
<a id="ERR_STREAM_READ_NOT_IMPLEMENTED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_STREAM_READ_NOT_IMPLEMENTED`
|
2018-08-02 08:58:19 +02:00
|
|
|
|
<!-- YAML
|
|
|
|
|
added: v9.0.0
|
|
|
|
|
removed: v10.0.0
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
Used when an attempt is made to use a readable stream that has not implemented
|
|
|
|
|
[`readable._read()`][].
|
|
|
|
|
|
|
|
|
|
<a id="ERR_TLS_RENEGOTIATION_FAILED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_TLS_RENEGOTIATION_FAILED`
|
2018-08-02 08:58:19 +02:00
|
|
|
|
<!-- YAML
|
|
|
|
|
added: v9.0.0
|
|
|
|
|
removed: v10.0.0
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
Used when a TLS renegotiation request has failed in a non-specific way.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_UNKNOWN_BUILTIN_MODULE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_UNKNOWN_BUILTIN_MODULE`
|
2018-08-02 08:58:19 +02:00
|
|
|
|
<!-- YAML
|
|
|
|
|
added: v8.0.0
|
|
|
|
|
removed: v9.0.0
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
The `'ERR_UNKNOWN_BUILTIN_MODULE'` error code is used to identify a specific
|
|
|
|
|
kind of internal Node.js error that should not typically be triggered by user
|
|
|
|
|
code. Instances of this error point to an internal bug within the Node.js
|
|
|
|
|
binary itself.
|
|
|
|
|
|
2018-05-09 20:42:31 +02:00
|
|
|
|
<a id="ERR_UNKNOWN_STDIN_TYPE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_UNKNOWN_STDIN_TYPE`
|
2018-05-09 20:42:31 +02:00
|
|
|
|
<!-- YAML
|
|
|
|
|
added: v8.0.0
|
2019-01-16 15:55:55 +01:00
|
|
|
|
removed: v11.7.0
|
2018-05-09 20:42:31 +02:00
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
An attempt was made to launch a Node.js process with an unknown `stdin` file
|
|
|
|
|
type. This error is usually an indication of a bug within Node.js itself,
|
|
|
|
|
although it is possible for user code to trigger it.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_UNKNOWN_STREAM_TYPE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_UNKNOWN_STREAM_TYPE`
|
2018-05-09 20:42:31 +02:00
|
|
|
|
<!-- YAML
|
|
|
|
|
added: v8.0.0
|
2019-01-16 15:55:55 +01:00
|
|
|
|
removed: v11.7.0
|
2018-05-09 20:42:31 +02:00
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
An attempt was made to launch a Node.js process with an unknown `stdout` or
|
|
|
|
|
`stderr` file type. This error is usually an indication of a bug within Node.js
|
|
|
|
|
itself, although it is possible for user code to trigger it.
|
|
|
|
|
|
2018-08-02 08:58:19 +02:00
|
|
|
|
<a id="ERR_VALUE_OUT_OF_RANGE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_VALUE_OUT_OF_RANGE`
|
2018-08-02 08:58:19 +02:00
|
|
|
|
<!-- YAML
|
|
|
|
|
added: v9.0.0
|
|
|
|
|
removed: v10.0.0
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
Used when a given value is out of the accepted range.
|
|
|
|
|
|
2019-09-09 19:20:16 +02:00
|
|
|
|
<a id="ERR_VM_MODULE_NOT_LINKED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_VM_MODULE_NOT_LINKED`
|
2019-09-09 19:20:16 +02:00
|
|
|
|
|
|
|
|
|
The module must be successfully linked before instantiation.
|
|
|
|
|
|
2018-08-02 08:58:19 +02:00
|
|
|
|
<a id="ERR_ZLIB_BINDING_CLOSED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
### `ERR_ZLIB_BINDING_CLOSED`
|
2018-08-02 08:58:19 +02:00
|
|
|
|
<!-- YAML
|
|
|
|
|
added: v9.0.0
|
|
|
|
|
removed: v10.0.0
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
|
|
Used when an attempt is made to use a `zlib` object after it has already been
|
|
|
|
|
closed.
|
|
|
|
|
|
|
|
|
|
### Other error codes
|
|
|
|
|
|
|
|
|
|
These errors have never been released, but had been present on master between
|
|
|
|
|
releases.
|
|
|
|
|
|
2019-04-15 19:29:56 +02:00
|
|
|
|
<a id="ERR_ENTRY_TYPE_MISMATCH"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
#### `ERR_ENTRY_TYPE_MISMATCH`
|
2019-04-15 19:29:56 +02:00
|
|
|
|
|
|
|
|
|
> Stability: 1 - Experimental
|
|
|
|
|
|
|
|
|
|
The `--entry-type=commonjs` flag was used to attempt to execute an `.mjs` file
|
|
|
|
|
or a `.js` file where the nearest parent `package.json` contains
|
|
|
|
|
`"type": "module"`; or
|
|
|
|
|
the `--entry-type=module` flag was used to attempt to execute a `.cjs` file or
|
|
|
|
|
a `.js` file where the nearest parent `package.json` either lacks a `"type"`
|
|
|
|
|
field or contains `"type": "commonjs"`.
|
|
|
|
|
|
2018-08-02 08:58:19 +02:00
|
|
|
|
<a id="ERR_FS_WATCHER_ALREADY_STARTED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
#### `ERR_FS_WATCHER_ALREADY_STARTED`
|
2018-08-02 08:58:19 +02:00
|
|
|
|
|
|
|
|
|
An attempt was made to start a watcher returned by `fs.watch()` that has
|
|
|
|
|
already been started.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_FS_WATCHER_NOT_STARTED"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
#### `ERR_FS_WATCHER_NOT_STARTED`
|
2018-08-02 08:58:19 +02:00
|
|
|
|
|
|
|
|
|
An attempt was made to initiate operations on a watcher returned by
|
|
|
|
|
`fs.watch()` that has not yet been started.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_HTTP2_ALREADY_SHUTDOWN"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
#### `ERR_HTTP2_ALREADY_SHUTDOWN`
|
2018-08-02 08:58:19 +02:00
|
|
|
|
|
|
|
|
|
Occurs with multiple attempts to shutdown an HTTP/2 session.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_HTTP2_ERROR"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
#### `ERR_HTTP2_ERROR`
|
2018-08-02 08:58:19 +02:00
|
|
|
|
|
|
|
|
|
A non-specific HTTP/2 error has occurred.
|
|
|
|
|
|
|
|
|
|
<a id="ERR_INVALID_REPL_HISTORY"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
#### `ERR_INVALID_REPL_HISTORY`
|
2018-08-02 08:58:19 +02:00
|
|
|
|
|
|
|
|
|
Used in the `repl` in case the old history file is used and an error occurred
|
|
|
|
|
while trying to read and parse it.
|
|
|
|
|
|
2018-08-28 17:28:46 +02:00
|
|
|
|
<a id="ERR_INVALID_REPL_TYPE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
#### `ERR_INVALID_REPL_TYPE`
|
2018-08-28 17:28:46 +02:00
|
|
|
|
|
|
|
|
|
> Stability: 1 - Experimental
|
|
|
|
|
|
|
|
|
|
The `--entry-type=...` flag is not compatible with the Node.js REPL.
|
|
|
|
|
|
2018-08-02 08:58:19 +02:00
|
|
|
|
<a id="ERR_MISSING_DYNAMIC_INSTANTIATE_HOOK"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
#### `ERR_MISSING_DYNAMIC_INSTANTIATE_HOOK`
|
2018-08-02 08:58:19 +02:00
|
|
|
|
|
2018-08-28 17:28:46 +02:00
|
|
|
|
Used when an [ES Module][] loader hook specifies `format: 'dynamic'` but does
|
2018-08-02 08:58:19 +02:00
|
|
|
|
not provide a `dynamicInstantiate` hook.
|
|
|
|
|
|
2019-10-12 11:23:07 +02:00
|
|
|
|
<a id="ERR_FEATURE_UNAVAILABLE_ON_PLATFORM"></a>
|
|
|
|
|
#### `ERR_FEATURE_UNAVAILABLE_ON_PLATFORM`
|
|
|
|
|
|
|
|
|
|
Used when a feature that is not available
|
|
|
|
|
to the current platform which is running Node.js is used.
|
|
|
|
|
|
2018-08-02 08:58:19 +02:00
|
|
|
|
<a id="ERR_STREAM_HAS_STRINGDECODER"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
#### `ERR_STREAM_HAS_STRINGDECODER`
|
2018-08-02 08:58:19 +02:00
|
|
|
|
|
|
|
|
|
Used to prevent an abort if a string decoder was set on the Socket.
|
|
|
|
|
|
|
|
|
|
```js
|
|
|
|
|
const Socket = require('net').Socket;
|
|
|
|
|
const instance = new Socket();
|
|
|
|
|
|
|
|
|
|
instance.setEncoding('utf8');
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
<a id="ERR_STRING_TOO_LARGE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
#### `ERR_STRING_TOO_LARGE`
|
2018-08-02 08:58:19 +02:00
|
|
|
|
|
|
|
|
|
An attempt has been made to create a string larger than the maximum allowed
|
|
|
|
|
size.
|
|
|
|
|
|
2018-09-24 11:15:37 +02:00
|
|
|
|
<a id="ERR_TTY_WRITABLE_NOT_READABLE"></a>
|
2019-12-24 02:38:09 +01:00
|
|
|
|
#### `ERR_TTY_WRITABLE_NOT_READABLE`
|
2018-09-24 11:15:37 +02:00
|
|
|
|
|
|
|
|
|
This `Error` is thrown when a read is attempted on a TTY `WriteStream`,
|
|
|
|
|
such as `process.stdout.on('data')`.
|
|
|
|
|
|
2018-07-19 21:41:51 +02:00
|
|
|
|
[`'uncaughtException'`]: process.html#process_event_uncaughtexception
|
2020-03-15 01:54:15 +01:00
|
|
|
|
[`--disable-proto=throw`]: cli.html#cli_disable_proto_mode
|
2018-10-30 00:53:10 +01:00
|
|
|
|
[`--force-fips`]: cli.html#cli_force_fips
|
|
|
|
|
[`Class: assert.AssertionError`]: assert.html#assert_class_assert_assertionerror
|
|
|
|
|
[`ERR_INVALID_ARG_TYPE`]: #ERR_INVALID_ARG_TYPE
|
|
|
|
|
[`EventEmitter`]: events.html#events_class_eventemitter
|
2020-03-15 01:54:15 +01:00
|
|
|
|
[`Object.getPrototypeOf`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/getPrototypeOf
|
|
|
|
|
[`Object.setPrototypeOf`]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf
|
2018-05-17 16:25:36 +02:00
|
|
|
|
[`REPL`]: repl.html
|
2018-10-30 00:53:10 +01:00
|
|
|
|
[`Writable`]: stream.html#stream_class_stream_writable
|
2018-01-17 22:22:48 +01:00
|
|
|
|
[`child_process`]: child_process.html
|
2017-10-26 22:06:09 +02:00
|
|
|
|
[`cipher.getAuthTag()`]: crypto.html#crypto_cipher_getauthtag
|
2019-12-31 02:12:36 +01:00
|
|
|
|
[`crypto.getDiffieHellman()`]: crypto.html#crypto_crypto_getdiffiehellman_groupname
|
2018-05-18 11:05:20 +02:00
|
|
|
|
[`crypto.scrypt()`]: crypto.html#crypto_crypto_scrypt_password_salt_keylen_options_callback
|
2018-07-01 23:38:05 +02:00
|
|
|
|
[`crypto.scryptSync()`]: crypto.html#crypto_crypto_scryptsync_password_salt_keylen_options
|
2017-10-24 19:04:25 +02:00
|
|
|
|
[`crypto.timingSafeEqual()`]: crypto.html#crypto_crypto_timingsafeequal_a_b
|
2019-03-16 23:03:48 +01:00
|
|
|
|
[`dgram.connect()`]: dgram.html#dgram_socket_connect_port_address_callback
|
2017-10-24 19:17:53 +02:00
|
|
|
|
[`dgram.createSocket()`]: dgram.html#dgram_dgram_createsocket_options_callback
|
2019-03-16 23:03:48 +01:00
|
|
|
|
[`dgram.disconnect()`]: dgram.html#dgram_socket_disconnect
|
|
|
|
|
[`dgram.remoteAddress()`]: dgram.html#dgram_socket_remoteaddress
|
2018-11-04 20:59:14 +01:00
|
|
|
|
[`errno`(3) man page]: http://man7.org/linux/man-pages/man3/errno.3.html
|
2019-08-28 02:14:27 +02:00
|
|
|
|
[`fs.Dir`]: fs.html#fs_class_fs_dir
|
2018-07-19 21:41:51 +02:00
|
|
|
|
[`fs.readFileSync`]: fs.html#fs_fs_readfilesync_path_options
|
2018-10-30 00:53:10 +01:00
|
|
|
|
[`fs.readdir`]: fs.html#fs_fs_readdir_path_options_callback
|
2017-12-22 23:00:08 +01:00
|
|
|
|
[`fs.symlink()`]: fs.html#fs_fs_symlink_target_path_type_callback
|
|
|
|
|
[`fs.symlinkSync()`]: fs.html#fs_fs_symlinksync_target_path_type
|
2018-07-19 21:41:51 +02:00
|
|
|
|
[`fs.unlink`]: fs.html#fs_fs_unlink_path_callback
|
2018-10-30 00:53:10 +01:00
|
|
|
|
[`fs`]: fs.html
|
2017-10-24 19:17:53 +02:00
|
|
|
|
[`hash.digest()`]: crypto.html#crypto_hash_digest_encoding
|
|
|
|
|
[`hash.update()`]: crypto.html#crypto_hash_update_data_inputencoding
|
2015-11-28 00:30:32 +01:00
|
|
|
|
[`http`]: http.html
|
|
|
|
|
[`https`]: https.html
|
2017-01-24 16:49:53 +01:00
|
|
|
|
[`libuv Error handling`]: http://docs.libuv.org/en/v1.x/errors.html
|
2015-11-28 00:30:32 +01:00
|
|
|
|
[`net`]: net.html
|
2017-05-08 18:30:13 +02:00
|
|
|
|
[`new URL(input)`]: url.html#url_constructor_new_url_input_base
|
|
|
|
|
[`new URLSearchParams(iterable)`]: url.html#url_constructor_new_urlsearchparams_iterable
|
|
|
|
|
[`process.send()`]: process.html#process_process_send_message_sendhandle_options_callback
|
2017-11-20 19:57:20 +01:00
|
|
|
|
[`process.setUncaughtExceptionCaptureCallback()`]: process.html#process_process_setuncaughtexceptioncapturecallback_fn
|
2018-08-02 08:58:19 +02:00
|
|
|
|
[`readable._read()`]: stream.html#stream_readable_read_size_1
|
2017-10-24 08:06:53 +02:00
|
|
|
|
[`require('crypto').setEngine()`]: crypto.html#crypto_crypto_setengine_engine_flags
|
2019-01-05 23:44:49 +01:00
|
|
|
|
[`require()`]: modules.html#modules_require_id
|
2018-07-19 21:41:51 +02:00
|
|
|
|
[`server.close()`]: net.html#net_server_close_callback
|
2018-10-30 00:53:10 +01:00
|
|
|
|
[`server.listen()`]: net.html#net_server_listen
|
2018-11-07 21:27:47 +01:00
|
|
|
|
[`sign.sign()`]: crypto.html#crypto_sign_sign_privatekey_outputencoding
|
2018-07-19 21:41:51 +02:00
|
|
|
|
[`stream.pipe()`]: stream.html#stream_readable_pipe_destination_options
|
|
|
|
|
[`stream.push()`]: stream.html#stream_readable_push_chunk_encoding
|
2019-04-12 00:16:34 +02:00
|
|
|
|
[`stream.unshift()`]: stream.html#stream_readable_unshift_chunk_encoding
|
2018-07-19 21:41:51 +02:00
|
|
|
|
[`stream.write()`]: stream.html#stream_writable_write_chunk_encoding_callback
|
|
|
|
|
[`subprocess.kill()`]: child_process.html#child_process_subprocess_kill_signal
|
|
|
|
|
[`subprocess.send()`]: child_process.html#child_process_subprocess_send_message_sendhandle_options_callback
|
2019-06-09 15:04:51 +02:00
|
|
|
|
[`util.getSystemErrorName(error.errno)`]: util.html#util_util_getsystemerrorname_err
|
2018-05-20 19:16:19 +02:00
|
|
|
|
[`zlib`]: zlib.html
|
2018-08-28 17:28:46 +02:00
|
|
|
|
[ES Module]: esm.html
|
2018-10-30 00:53:10 +01:00
|
|
|
|
[ICU]: intl.html#intl_internationalization_support
|
2017-05-08 18:30:13 +02:00
|
|
|
|
[Node.js Error Codes]: #nodejs-error-codes
|
|
|
|
|
[V8's stack trace API]: https://github.com/v8/v8/wiki/Stack-Trace-API
|
2018-10-30 00:53:10 +01:00
|
|
|
|
[WHATWG Supported Encodings]: util.html#util_whatwg_supported_encodings
|
2017-05-08 18:30:13 +02:00
|
|
|
|
[WHATWG URL API]: url.html#url_the_whatwg_url_api
|
2017-10-03 05:56:49 +02:00
|
|
|
|
[crypto digest algorithm]: crypto.html#crypto_crypto_gethashes
|
2015-11-14 04:21:49 +01:00
|
|
|
|
[domains]: domain.html
|
2016-04-13 12:30:14 +02:00
|
|
|
|
[event emitter-based]: events.html#events_class_eventemitter
|
2020-03-04 22:53:05 +01:00
|
|
|
|
[exports]: esm.html#esm_package_entry_points
|
2015-12-02 17:17:19 +01:00
|
|
|
|
[file descriptors]: https://en.wikipedia.org/wiki/File_descriptor
|
2018-09-13 21:27:12 +02:00
|
|
|
|
[policy]: policy.html
|
2015-11-28 00:30:32 +01:00
|
|
|
|
[stream-based]: stream.html
|
2018-05-20 19:16:19 +02:00
|
|
|
|
[syscall]: http://man7.org/linux/man-pages/man2/syscalls.2.html
|
2018-09-13 21:27:12 +02:00
|
|
|
|
[Subresource Integrity specification]: https://www.w3.org/TR/SRI/#the-integrity-attribute
|
2016-02-20 01:07:00 +01:00
|
|
|
|
[try-catch]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/try...catch
|
2015-11-28 00:30:32 +01:00
|
|
|
|
[vm]: vm.html
|