{ "source": "doc/api/deprecations.md", "modules": [ { "textRaw": "Deprecated APIs", "name": "deprecated_apis", "introduced_in": "v7.7.0", "desc": "
Node.js may deprecate APIs when either: (a) use of the API is considered to be\nunsafe, (b) an improved alternative API has been made available, or (c)\nbreaking changes to the API are expected in a future major release.
\nNode.js utilizes three kinds of Deprecations:
\nA Documentation-only deprecation is one that is expressed only within the\nNode.js API docs. These generate no side-effects while running Node.js.
\nA Runtime deprecation will, by default, generate a process warning that will\nbe printed to stderr
the first time the deprecated API is used. When the\n--throw-deprecation
command-line flag is used, a Runtime deprecation will\ncause an error to be thrown.
An End-of-Life deprecation is used to identify code that either has been\nremoved or will soon be removed from Node.js.
\n", "modules": [ { "textRaw": "Un-deprecation", "name": "un-deprecation", "desc": "From time-to-time the deprecation of an API may be reversed. Such action may\nhappen in either a semver-minor or semver-major release. In such situations,\nthis document will be updated with information relevant to the decision.\nHowever, the deprecation identifier will not be modified.
\n", "type": "module", "displayName": "Un-deprecation" }, { "textRaw": "List of Deprecated APIs", "name": "list_of_deprecated_apis", "desc": "\n", "modules": [ { "textRaw": "DEP0001: http.OutgoingMessage.prototype.flush", "name": "dep0001:_http.outgoingmessage.prototype.flush", "desc": "Type: Runtime
\nThe OutgoingMessage.prototype.flush()
method is deprecated. Use\nOutgoingMessage.prototype.flushHeaders()
instead.
Type: End-of-Life
\nThe _linklist
module is deprecated. Please use a userland alternative.
Type: Documentation-only
\nThe CryptoStream.prototype.readyState
property is deprecated and should not\nbe used.
Type: Documentation-only
\nThe Buffer()
function and new Buffer()
constructor are deprecated due to\nAPI usability issues that can potentially lead to accidental security issues.
As an alternative, use of the following methods of constructing Buffer
objects\nis strongly recommended:
Buffer.alloc(size[, fill[, encoding]])
- Create a Buffer
with\ninitialized memory.Buffer.allocUnsafe(size)
- Create a Buffer
with uninitialized\nmemory.Buffer.allocUnsafeSlow(size)
- Create a Buffer
with uninitialized\n memory.Buffer.from(array)
- Create a Buffer
with a copy of array
Buffer.from(arrayBuffer[, byteOffset[, length]])
- Create a Buffer
\nthat wraps the given arrayBuffer
.Buffer.from(buffer)
- Create a Buffer
that copies buffer
.Buffer.from(string[, encoding])
- Create a Buffer
that copies\nstring
.Type: Documentation-only
\nThe constants
module has been deprecated. When requiring access to constants\nrelevant to specific Node.js builtin modules, developers should instead refer\nto the constants
property exposed by the relevant module. For instance,\nrequire('fs').constants
and require('os').constants
.
Type: End-of-life
\nUse of the crypto.pbkdf2()
API without specifying a digest was deprecated\nin Node.js 6.0 because the method defaulted to using the non-recommended\n'SHA1'
digest. Previously, a deprecation warning was printed. Starting in\nNode.js 8.0.0, calling crypto.pbkdf2()
or crypto.pbkdf2Sync()
with an\nundefined digest
will throw a TypeError
.
Type: Runtime
\nCalling an asynchronous function without a callback is deprecated.
\n\n", "type": "module", "displayName": "DEP0013: fs asynchronous function without callback" }, { "textRaw": "DEP0014: fs.read legacy String interface", "name": "dep0014:_fs.read_legacy_string_interface", "desc": "Type: End-of-Life
\nThe fs.read()
legacy String interface is deprecated. Use the Buffer API as\nmentioned in the documentation instead.
Type: End-of-Life
\nThe fs.readSync()
legacy String interface is deprecated. Use the Buffer\nAPI as mentioned in the documentation instead.
Type: Runtime
\nThe GLOBAL
and root
aliases for the global
property have been deprecated\nand should no longer be used.
Type: Runtime
\nUnhandled promise rejections are deprecated. In the future, promise rejections\nthat are not handled will terminate the Node.js process with a non-zero exit\ncode.
\n\n", "type": "module", "displayName": "DEP0018: Unhandled promise rejections" }, { "textRaw": "DEP0019: require('.') resolved outside directory", "name": "dep0019:_require('.')_resolved_outside_directory", "desc": "Type: Runtime
\nIn certain cases, require('.')
may resolve outside the package directory.\nThis behavior is deprecated and will be removed in a future major Node.js\nrelease.
Type: Runtime
\nThe REPLServer.prototype.convertToContext()
API is deprecated and should\nnot be used.
Type: Runtime
\nThe sys
module is deprecated. Please use the util
module instead.
Type: Documentation-only
\nThe SlowBuffer
class has been deprecated. Please use\nBuffer.allocUnsafeSlow(size)
instead.
Type: Documentation-only
\nThe domain
module is deprecated and should not be used.
Type: Documentation-only
\nThe punycode
module has been deprecated. Please use a userland alternative\ninstead.
Type: Documentation-only
\nThe NODE_REPL_HISTORY_FILE
environment variable has been deprecated.
Type: Runtime
\n--debug
activates the legacy V8 debugger interface, which has been removed as\nof V8 5.8. It is replaced by Inspector which is activated with --inspect
\ninstead.
Type: Documentation-only
\nThe http
module ServerResponse.prototype.writeHeader()
API has been\ndeprecated. Please use ServerResponse.prototype.writeHead()
instead.
Note: The ServerResponse.prototype.writeHeader()
method was never\ndocumented as an officially supported API.
Type: Documentation-only
\nThe repl
module's REPL_MODE_MAGIC
constant, used for replMode
option, has\nbeen deprecated. Its behavior has been functionally identical to that of\nREPL_MODE_SLOPPY
since Node.js v6.0.0, when V8 5.0 was imported. Please use\nREPL_MODE_SLOPPY
instead.
The NODE_REPL_MODE
environment variable is used to set the underlying\nreplMode
of an interactive node
session. Its default value, magic
, is\nsimilarly deprecated in favor of sloppy
.
Type: Documentation-only
\nThe http
module outgoingMessage._headers
and outgoingMessage._headerNames
\nproperties have been deprecated. Please instead use one of the public methods\n(e.g. outgoingMessage.getHeader()
, outgoingMessage.getHeaders()
,\noutgoingMessage.getHeaderNames()
, outgoingMessage.hasHeader()
,\noutgoingMessage.removeHeader()
, outgoingMessage.setHeader()
) for working\nwith outgoing headers.
Note: outgoingMessage._headers
and outgoingMessage._headerNames
were\nnever documented as officially supported properties.
Type: Documentation-only
\nThe http
module OutgoingMessage.prototype._renderHeaders()
API has been\ndeprecated.
Note: OutgoingMessage.prototype._renderHeaders
was never documented as\nan officially supported API.
Type: Runtime
\nnode debug
corresponds to the legacy CLI debugger which has been replaced with\na V8-inspector based CLI debugger available through node inspect
.
Type: Runtime
\nasync_hooks.AsyncResource.triggerId()
was renamed to\nasync_hooks.AsyncResource.triggerAsyncId()
for clarity.
Note: change was made while async_hooks
was an experimental API.
Type: Runtime
\nThe AsyncHooks Sensitive API was never documented and had various of minor\nissues, see https://github.com/nodejs/node/issues/15572. Use the AsyncResource
\nAPI instead.
Type: Runtime
\nrunInAsyncIdScope
doesn't emit the before
or after
event and can thus\ncause a lot of issues. See https://github.com/nodejs/node/issues/14328 for more\ndetails.
Type: Documentation-only
\nImporting assert directly is not recommended as the exposed functions will use\nloose equality checks. Use require('assert').strict
instead. The API is the\nsame as the legacy assert but it will always use strict equality checks.
Type: Runtime
\nThe embedded API provided by AsyncHooks exposes emit{Before,After} methods\nwhich are very easy to use incorrectly which can lead to unrecoverable errors.
\nUse asyncResource.runInAsyncScope()
API instead which provides a much\nsafer, and more convenient, alternative. See\nhttps://github.com/nodejs/node/pull/18513 for more details.
Type: Runtime
\nThe _writableState.buffer
property is deprecated. Use the\n_writableState.getBuffer()
method instead.
Type: Runtime
\nWithin the child_process
module's spawn()
, fork()
, and exec()
\nmethods, the options.customFds
option is deprecated. The options.stdio
\noption should be used instead.
Type: Runtime
\nWithin the cluster
module, the worker.suicide
property has been\ndeprecated. Please use worker.exitedAfterDisconnect
instead.
Type: Runtime
\nThe crypto.createCredentials()
API is deprecated. Please use\ntls.createSecureContext()
instead.
Type: Runtime
\nThe crypto.Credentials
class is deprecated. Please use tls.SecureContext
\ninstead.
Type: Runtime
\nDomain.dispose()
is deprecated. Recover from failed I/O actions\nexplicitly via error event handlers set on the domain instead.
Type: Runtime
\nThe Intl.v8BreakIterator
is deprecated and will be removed or replaced soon.
Type: Runtime
\nThe Server.connections
property is deprecated. Please use the\nServer.getConnections()
method instead.
Type: Runtime
\nThe Server.listenFD()
method is deprecated. Please use\nServer.listen({fd: <number>})
instead.
Type: Documentation-only
\nThe require.extensions
property has been deprecated.
Type: Documentation-only
\nThe tls.CryptoStream
class has been deprecated. Please use\ntls.TLSSocket
instead.
Type: Documentation-only
\nThe tls.SecurePair
class has been deprecated. Please use\ntls.TLSSocket
instead.
Type: Runtime
\nThe fs.SyncWriteStream
class was never intended to be a publicly accessible\nAPI. No alternative API is available. Please use a userland alternative.
Type: Runtime
\nThe os.tmpDir()
API is deprecated. Please use os.tmpdir()
instead.
Type: Runtime
\nThe os.getNetworkInterfaces()
method is deprecated. Please use the\nos.networkInterfaces
property instead.
Type: Runtime
\nThe util.print()
API is deprecated. Please use console.log()
\ninstead.
Type: Runtime
\nThe util.puts()
API is deprecated. Please use console.log()
instead.
Type: Runtime
\nThe util.debug()
API is deprecated. Please use console.error()
\ninstead.
Type: Runtime
\nThe util.error()
API is deprecated. Please use console.error()
\ninstead.
Type: Documentation-only
\nThe ecdh.setPublicKey()
method is now deprecated as its inclusion in the\nAPI is not useful.
Type: Documentation-only
\nThe EventEmitter.listenerCount(emitter, eventName)
API has been\ndeprecated. Please use emitter.listenerCount(eventName)
instead.
Type: Documentation-only
\nThe fs.exists(path, callback)
API has been deprecated. Please use\nfs.stat()
or fs.access()
instead.
Type: Documentation-only
\nThe fs.lchmod(path, mode, callback)
API has been deprecated.
Type: Documentation-only
\nThe fs.lchmodSync(path, mode)
API has been deprecated.
Type: Documentation-only
\nThe fs.lchown(path, uid, gid, callback)
API has been deprecated.
Type: Documentation-only
\nThe fs.lchownSync(path, uid, gid)
API has been deprecated.
Type: Documentation-only
\nThe util.isArray()
API has been deprecated. Please use Array.isArray()
\ninstead.
Type: Documentation-only
\nThe util.isBoolean()
API has been deprecated.
Type: Documentation-only
\nThe util.isBuffer()
API has been deprecated. Please use\nBuffer.isBuffer()
instead.
Type: Documentation-only
\nThe util.isDate()
API has been deprecated.
Type: Documentation-only
\nThe util.isError()
API has been deprecated.
Type: Documentation-only
\nThe util.isFunction()
API has been deprecated.
Type: Documentation-only
\nThe util.isNull()
API has been deprecated.
Type: Documentation-only
\nThe util.isNullOrUndefined()
API has been deprecated.
Type: Documentation-only
\nThe util.isNumber()
API has been deprecated.
Type: Documentation-only
\nThe util.isObject()
API has been deprecated.
Type: Documentation-only
\nThe util.isPrimitive()
API has been deprecated.
Type: Documentation-only
\nThe util.isRegExp()
API has been deprecated.
Type: Documentation-only
\nThe util.isString()
API has been deprecated.
Type: Documentation-only
\nThe util.isSymbol()
API has been deprecated.
Type: Documentation-only
\nThe util.isUndefined()
API has been deprecated.
Type: Documentation-only
\nThe util.log()
API has been deprecated.
Type: Documentation-only
\nThe util._extend()
API has been deprecated.
Type: Runtime
\nThe tls.createSecurePair()
API was deprecated in documentation in Node.js\n0.11.3. Users should use tls.Socket
instead.
Type: Documentation-only
\nThe DebugContext will be removed in V8 soon and will not be available in Node\n10+.
\nNote: DebugContext was an experimental API.
\n\n", "signatures": [ { "params": [ { "name": "string" } ] } ] }, { "textRaw": "DEP0070: async_hooks.currentId()", "type": "method", "name": "currentId", "desc": "Type: Runtime
\nasync_hooks.currentId()
was renamed to async_hooks.executionAsyncId()
for\nclarity.
Note: change was made while async_hooks
was an experimental API.
Type: Runtime
\nasync_hooks.triggerId()
was renamed to async_hooks.triggerAsyncId()
for\nclarity.
Note: change was made while async_hooks
was an experimental API.
Type: Documentation-only
\ntls.parseCertString()
is a trivial parsing helper that was made public by\nmistake. This function can usually be replaced with:
const querystring = require('querystring');\nquerystring.parse(str, '\\n', '=');\n
\nNote: This function is not completely equivalent to querystring.parse()
. One\ndifference is that querystring.parse()
does url decoding:
> querystring.parse('%E5%A5%BD=1', '\\n', '=');\n{ '好': '1' }\n> tls.parseCertString('%E5%A5%BD=1');\n{ '%E5%A5%BD': '1' }\n
\n\n",
"signatures": [
{
"params": []
}
]
},
{
"textRaw": "DEP0079: Custom inspection function on Objects via .inspect()",
"type": "method",
"name": "inspect",
"desc": "Type: Documentation-only
\nUsing a property named inspect
on an object to specify a custom inspection\nfunction for util.inspect()
is deprecated. Use util.inspect.custom
\ninstead. For backwards compatibility with Node.js prior to version 6.4.0, both\nmay be specified.