Upload
gregory-smith
View
271
Download
1
Embed Size (px)
Citation preview
7/23/2019 Node Js Manual Esp
1/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 1/
HOME
DOCS
TRABAJOS
GITHUB
HOME
DESCARGAR
ACERCA
REGISTO NPM
DOCS
BLOG
COMUNIDAD
LOGOS
TRABAJOS
Acerca de esta documentacin
ndice de estabilidad
salida JSON
Sinopsis
Objetos Globales
global
processconsole
Class: Buffer
require()
require.resolve()
require.cache
__filename
__dirname
module
exports
setTimeout(cb, ms)
clearTimeout(t)
setInterval(cb, ms)clearInterval(t)
console
console.log()
console.info()
console.warn()
console.error()
console.dir(obj)
console.time(label)
console.timeEnd(label)
console.trace()
console.assert()
TimersetTimeout(callback, delay, [arg], [...])
clearTimeout(timeoutId)
setInterval(callback, delay, [arg], [...])
clearInterval(intervalId)
Mdulos
Mdulos bsicos
Mdulo File
Cargando desde la carpeta node_modules
Optimizacin de proceso de bsqueda en node_modules
Carpetas como mdulos
Almacenamiento en la cach
esen
Nodejs.es
@nodejs_es
SitioOficial
@nodejs
Node.js v0.6.19 Manual & Documentacinndice| Ver todo en una misma pgina| Ver como JSON
Tabla de Contenidos
7/23/2019 Node Js Manual Esp
2/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 2/
Todos juntos...
Cargar desde las carpetas de require.paths
Nota:Por favor evite la modificacin de require.paths
Establecer require.pathsa algn otro valor para nada.
Poner rutas relativas en require.pathses... raro.
Cero aislamiento
Addenda: Consejos para administrar paquetes
Addons
process
Evento: 'exit'Evento: 'uncaughtException'
Eventos de seal
process.stdout
process.stderr
process.stdin
process.argv
process.execPath
process.chdir(directory)
process.cwd()
process.env
process.exit(code=0)
process.getgid()process.setgid(id)
process.getuid()
process.setuid(id)
process.version
process.installPrefix
process.kill(pid, signal='SIGTERM')
process.pid
process.title
process.platform
process.memoryUsage()
process.nextTick(callback)
process.umask([mask])util
util.format()
util.debug(string)
util.log(string)
util.inspect(object, showHidden=false, depth=2)
util.isArray(object)
util.isRegExp(object)
util.isDate(object)
util.isError(object)
util.pump(readableStream, writableStream, [callback])
util.inherits(constructor, superConstructor)
Eventos
events.EventEmitter
emitter.addListener(event, listener)
emitter.on(event, listener)
emitter.once(event, listener)
emitter.removeListener(event, listener)
emitter.removeAllListeners(event)
emitter.setMaxListeners(n)
emitter.listeners(event)
emitter.emit(event, [arg1], [arg2], [...])
Event: 'newListener'
Buffer
7/23/2019 Node Js Manual Esp
3/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 3/
Class: Buffer
new Buffer(size)
new Buffer(array)
new Buffer(str, [encoding])
buf.write(string, [offset], [length], [encoding])
buf.toString([encoding], [start], [end])
buf[index]
Class Method: Buffer.isBuffer(obj)
Class Method: Buffer.byteLength(string, [encoding])
buf.lengthbuf.copy(targetBuffer, [targetStart], [sourceStart], [sourceEnd])
buf.slice([start], [end])
buf.readUInt8(offset, [noAssert])
buf.readUInt16LE(offset, [noAssert])
buf.readUInt16BE(offset, [noAssert])
buf.readUInt32LE(offset, [noAssert])
buf.readUInt32BE(offset, [noAssert])
buf.readInt8(offset, [noAssert])
buf.readInt16LE(offset, [noAssert])
buf.readInt16BE(offset, [noAssert])
buf.readInt32LE(offset, [noAssert])
buf.readInt32BE(offset, [noAssert])buf.readFloatLE(offset, [noAssert])
buf.readFloatBE(offset, [noAssert])
buf.readDoubleLE(offset, [noAssert])
buf.readDoubleBE(offset, [noAssert])
buf.writeUInt8(value, offset, [noAssert])
buf.writeUInt16LE(value, offset, [noAssert])
buf.writeUInt16BE(value, offset, [noAssert])
buf.writeUInt32LE(value, offset, [noAssert])
buf.writeUInt32BE(value, offset, [noAssert])
buf.writeInt8(value, offset, [noAssert])
buf.writeInt16LE(value, offset, [noAssert])
buf.writeInt16BE(value, offset, [noAssert])buf.writeInt32LE(value, offset, [noAssert])
buf.writeInt32BE(value, offset, [noAssert])
buf.writeFloatLE(value, offset, [noAssert])
buf.writeFloatBE(value, offset, [noAssert])
buf.writeDoubleLE(value, offset, [noAssert])
buf.writeDoubleBE(value, offset, [noAssert])
buf.fill(value, [offset], [end])
buffer.INSPECT_MAX_BYTES
Class: SlowBuffer
Streams
Readable Stream
Event: 'data'
Event: 'end'
Event: 'error'
Event: 'close'
Event: 'fd'
stream.readable
stream.setEncoding(encoding)
stream.pause()
stream.resume()
stream.destroy()
stream.destroySoon()
stream.pipe(destination, [options])
7/23/2019 Node Js Manual Esp
4/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 4/
Writable Stream
Event: 'drain'
Event: 'error'
Event: 'close'
Event: 'pipe'
stream.writable
stream.write(string, encoding='utf8', [fd])
stream.write(buffer)
stream.end()
stream.end(string, encoding)stream.end(buffer)
stream.destroy()
stream.destroySoon()
Crypto
crypto.createCredentials(details)
crypto.createHash(algorithm)
Class: Hash
hash.update(data)
hash.digest([encoding])
crypto.createHmac(algorithm, key)
Class: Hmac
hmac.update(data)hmac.digest(encoding='binary')
crypto.createCipher(algorithm, key)
crypto.createCipheriv(algorithm, key, iv)
Class: Cipher
cipher.update(data, [input_encoding], [output_encoding])
cipher.final([output_encoding])
cipher.setAutoPadding(auto_padding=true)
crypto.createDecipher(algorithm, key)
decipher.update(data, input_encoding='binary', output_encoding='binary')
Class: Decipher
decipher.update(data, [input_encoding], [output_encoding])
decipher.final([output_encoding])decipher.setAutoPadding(auto_padding=true)
crypto.createSign(algorithm)
Class: Signer
signer.update(data)
signer.sign(private_key, output_format='binary')
crypto.createVerify(algorithm)
Class: Verify
verifier.update(data)
verifier.verify(cert, signature, signature_format='binary')
crypto.createDiffieHellman(prime_length)
crypto.createDiffieHellman(prime, [encoding])
Class: DiffieHellman
diffieHellman.generateKeys([encoding])
diffieHellman.computeSecret(other_public_key, [input_encoding], [output_encoding])
diffieHellman.getPrime([encoding])
diffieHellman.getGenerator([encoding])
diffieHellman.getPublicKey([encoding])
diffieHellman.getPrivateKey([encoding])
diffieHellman.setPublicKey(public_key, [encoding])
diffieHellman.setPrivateKey(public_key, [encoding])
crypto.getDiffieHellman(group_name)
crypto.pbkdf2(password, salt, iterations, keylen, callback)
crypto.randomBytes(size, [callback])
7/23/2019 Node Js Manual Esp
5/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 5/
TLS (SSL)
s = tls.connect(port, [host], [options], callback)
STARTTLS
tls.Server
tls.createServer(options, secureConnectionListener)
Event: 'secureConnection'
server.listen(port, [host], [callback])
server.close()
server.maxConnections
server.connectionsFile System
fs.rename(path1, path2, [callback])
fs.renameSync(path1, path2)
fs.truncate(fd, len, [callback])
fs.truncateSync(fd, len)
fs.chmod(path, mode, [callback])
fs.chmodSync(path, mode)
fs.stat(path, [callback])
fs.lstat(path, [callback])
fs.fstat(fd, [callback])
fs.statSync(path)
fs.lstatSync(path)fs.fstatSync(fd)
fs.link(srcpath, dstpath, [callback])
fs.linkSync(srcpath, dstpath)
fs.symlink(linkdata, path, [callback])
fs.symlinkSync(linkdata, path)
fs.readlink(path, [callback])
fs.readlinkSync(path)
fs.realpath(path, [callback])
fs.realpathSync(path)
fs.unlink(path, [callback])
fs.unlinkSync(path)
fs.rmdir(path, [callback])fs.rmdirSync(path)
fs.mkdir(path, mode, [callback])
fs.mkdirSync(path, mode)
fs.readdir(path, [callback])
fs.readdirSync(path)
fs.close(fd, [callback])
fs.closeSync(fd)
fs.open(path, flags, [mode], [callback])
fs.openSync(path, flags, [mode])
fs.write(fd, buffer, offset, length, position, [callback])
fs.writeSync(fd, buffer, offset, length, position)
fs.writeSync(fd, str, position, encoding='utf8')
fs.read(fd, buffer, offset, length, position, [callback])
fs.readSync(fd, buffer, offset, length, position)
fs.readSync(fd, length, position, encoding)
fs.readFile(filename, [encoding], [callback])
fs.readFileSync(filename, [encoding])
fs.writeFile(filename, data, encoding='utf8', [callback])
fs.writeFileSync(filename, data, encoding='utf8')
fs.watchFile(filename, [options], listener)
fs.unwatchFile(filename)
fs.Stats
fs.ReadStream
7/23/2019 Node Js Manual Esp
6/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 6/
fs.createReadStream(path, [options])
fs.WriteStream
Event: 'open'
fs.createWriteStream(path, [options])
Path
path.normalize(p)
path.join([path1], [path2], [...])
path.resolve([from ...], to)
path.relative(from, to)
path.dirname(p)path.basename(p, [ext])
path.extname(p)
net
net.createServer([options], [connectionListener])
net.connect(options, [connectionListener])
net.createConnection(options, [connectionListener])
net.connect(port, [host], [connectListener])
net.createConnection(port, [host], [connectListener])
net.connect(path, [connectListener])
net.createConnection(path, [connectListener])
Class: net.Server
server.listen(port, [host], [listeningListener])server.listen(path, [listeningListener])
server.close([cb])
server.address()
server.maxConnections
server.connections
Event: 'listening'
Event: 'connection'
Event: 'close'
Event: 'error'
Class: net.Socket
new net.Socket([options])
socket.connect(port, [host], [connectListener])socket.connect(path, [connectListener])
socket.bufferSize
socket.setEncoding([encoding])
socket.write(data, [encoding], [callback])
socket.end([data], [encoding])
socket.destroy()
socket.pause()
socket.resume()
socket.setTimeout(timeout, [callback])
socket.setNoDelay([noDelay])
socket.setKeepAlive([enable], [initialDelay])
socket.address()
socket.remoteAddress
socket.remotePort
socket.bytesRead
socket.bytesWritten
Event: 'connect'
Event: 'data'
Event: 'end'
Event: 'timeout'
Event: 'drain'
Event: 'error'
Event: 'close'
7/23/2019 Node Js Manual Esp
7/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 7/
net.isIP(input)
net.isIPv4(input)
net.isIPv6(input)
UDP / Sockets de Datagrama
Evento: 'message'
Evento: 'listening'
Evento: 'close'
dgram.createSocket(type, [callback])
dgram.send(buf, offset, length, path, [callback])
dgram.send(buf, offset, length, port, address, [callback])dgram.bind(path)
dgram.bind(port, [address])
dgram.close()
dgram.address()
dgram.setBroadcast(flag)
dgram.setTTL(ttl)
dgram.setMulticastTTL(ttl)
dgram.setMulticastLoopback(flag)
dgram.addMembership(multicastAddress, [multicastInterface])
dgram.dropMembership(multicastAddress, [multicastInterface])
DNS
dns.lookup(domain, [family], callback)dns.resolve(domain, [rrtype], callback)
dns.resolve4(domain, callback)
dns.resolve6(domain, callback)
dns.resolveMx(domain, callback)
dns.resolveTxt(domain, callback)
dns.resolveSrv(domain, callback)
dns.reverse(ip, callback)
dns.resolveNs(domain, callback)
dns.resolveCname(domain, callback)
HTTP
http.Server
Evento: 'request'Evento: 'connection'
Evento: 'close'
Evento: 'request'
Evento: 'checkContinue'
Evento: 'upgrade'
Evento: 'clientError'
http.createServer(requestListener)
server.listen(port, [hostname], [callback])
server.listen(path, [callback])
server.close()
http.ServerRequest
Event: 'data'
Event: 'end'
request.method
request.url
request.headers
request.trailers
request.httpVersion
request.setEncoding(encoding=null)
request.pause()
request.resume()
request.connection
http.ServerResponse
7/23/2019 Node Js Manual Esp
8/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 8/
response.writeContinue()
response.writeHead(statusCode, [reasonPhrase], [headers])
response.statusCode
response.setHeader(name, value)
response.getHeader(name)
response.removeHeader(name)
response.write(chunk, encoding='utf8')
response.addTrailers(headers)
response.end([data], [encoding])
http.request(options, callback)http.get(options, callback)
http.Agent
http.getAgent(host, port)
Event: 'upgrade'
Event: 'continue'
agent.maxSockets
agent.sockets
agent.queue
http.ClientRequest
Event 'response'
request.write(chunk, encoding='utf8')
request.end([data], [encoding])request.abort()
http.ClientResponse
Event: 'data'
Event: 'end'
response.statusCode
response.httpVersion
response.headers
response.trailers
response.setEncoding(encoding=null)
response.pause()
response.resume()
HTTPSClass: https.Server
https.createServer(options, [requestListener])
https.request(options, callback)
https.get(options, callback)
Class: https.Agent
https.globalAgent
URL
url.parse(urlStr, [parseQueryString], [slashesDenoteHost])
url.format(urlObj)
url.resolve(from, to)
Cadena de consulta
querystring.stringify(obj, sep='&', eq='=')
querystring.parse(str, sep='&', eq='=')
querystring.escape
querystring.unescape
Readline
createInterface(input, output, completer)
interface.setPrompt(prompt, length)
interface.prompt()
interface.question(query, cb)
interface.close()
interface.pause()
interface.resume()
7/23/2019 Node Js Manual Esp
9/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 9/
interface.write()
REPL
repl.start([prompt], [stream], [eval], [useGlobal], [ignoreUndefined])
Caractersticas de REPL
Executing JavaScript
vm.runInThisContext(code, [filename])
vm.runInNewContext(code, [sandbox], [filename])
vm.runInContext(code, context, [filename])
vm.createContext([initSandbox])
vm.createScript(code, [filename])Class: Script
script.runInThisContext()
script.runInNewContext([sandbox])
Child Process
Class: ChildProcess
Evento: 'exit'
Event: 'disconnect'
child.stdin
child.stdout
child.stderr
child.pid
child.kill([signal])child.send(message, [sendHandle])
child_process.spawn(command, [args], [options])
child_process.exec(command, [options], callback)
child_process.execFile(file, args, options, callback)
child_process.fork(modulePath, [args], [options])
Assert
assert.fail(actual, expected, message, operator)
assert.ok(value, [message])
assert.equal(actual, expected, [message])
assert.notEqual(actual, expected, [message])
assert.deepEqual(actual, expected, [message])
assert.notDeepEqual(actual, expected, [message])assert.strictEqual(actual, expected, [message])
assert.notStrictEqual(actual, expected, [message])
assert.throws(block, [error], [message])
assert.doesNotThrow(block, [error], [message])
assert.ifError(value)
TTY (Terminal)
tty.open(path, args=[])
tty.isatty(fd)
tty.setRawMode(mode)
tty.setWindowSize(fd, row, col)
tty.getWindowSize(fd)
Zlib
Examples
Constants
zlib.createGzip([options])
zlib.createGunzip([options])
zlib.createDeflate([options])
zlib.createInflate([options])
zlib.createDeflateRaw([options])
zlib.createInflateRaw([options])
zlib.createUnzip([options])
Class: zlib.Gzip
Class: zlib.Gunzip
7/23/2019 Node Js Manual Esp
10/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 10/
Class: zlib.Deflate
Class: zlib.Inflate
Class: zlib.DeflateRaw
Class: zlib.InflateRaw
Class: zlib.Unzip
Convenience Methods
zlib.deflate(buf, callback)
zlib.deflateRaw(buf, callback)
zlib.gzip(buf, callback)
zlib.gunzip(buf, callback)zlib.inflate(buf, callback)
zlib.inflateRaw(buf, callback)
zlib.unzip(buf, callback)
Options
Memory Usage Tuning
Mdulo os
os.hostname()
os.type()
os.release()
os.uptime()
os.loadavg()
os.totalmem()os.freemem()
os.cpus()
Depurador
Watchers
Commands reference
Stepping
Breakpoints
Info
Execution control
Various
Uso avanzado
Clustercluster.settings
cluster.isMaster
cluster.isWorker
Event: 'fork'
Event: 'online'
Event: 'listening'
Event: 'death'
Event: 'setup'
cluster.setupMaster([settings])
cluster.fork([env])
cluster.settings
cluster.workers
Class: Worker
worker.uniqueID
worker.process
worker.suicide
worker.send(message, [sendHandle])
worker.destroy()
Event: 'message'
Event: 'online'
Event: 'listening'
Event: 'death'
Apndice 1 - Mdulos de terceros
7/23/2019 Node Js Manual Esp
11/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 11/
Stability: 1 Experimental
0 - DeprecatedEsta caracterstica es conocida como problemtica y ya se han previsto cambios. No con
en esto. El uso de esta caracterstica puede causar advertencias.
1 - ExperimentalEsta caracterstica se ha includo recientemente y puede cambiar o ser removida en
futuras versiones. Por favor, prubela y de feedback. Si esta dirige a un caso de uso importante para usted
hgalo saber al equipo principal de node.
2 - UnstableLa API est en proceso de resolucin, pero todavia no ha sido suficientemente testeada en e
mundo real para ser considerada estable. Si es razonable se mantendr compatiblidad con versiones
anteriores.
3 - StableLa API ha resultado satisfactoria pero limpiar en el cdigo subyacente puede causar pequeos
cambios. Esta garantizada la compatibilidad con versiones anteriores.
4 - API FrozenLa API ha sido testeada ampliamente en produccin y es poco provable que alguna veztenga cambios.
5 - LockedAl menos que sean encontrados serios bugs este cdigo nunca cambiar. Por favor no sugiera
cambios en esta parte, sern rechazados.
Stability: 1 - Experimental
Acerca de esta documentacin
El objetivo de este documento es explicar ntegralmente la API Node.js, tanto como una referencia, como as
tambin un punto de vista conceptual. Cada seccin describe un mdulo integrado (built-in module) o un
concepto de alto nivel (high-level concept).
En su caso, los tipos de propiedades, los argumentos de mtodos, y los argumentos proporcionados a los
controladores de eventos se detallan en una lista debajo de la cabecera del topic.
Cada documento .html tiene un documento correspondiente .json presentando la misma informacin deuna manera estructurada. Esta caracterstica es experimental, y se agrega para el beneficio de las IDEs y otras
utilidades que desean hacer cosas programticas con la documentacin.
Cada archivo .html y .json es generado en base al correspondiente archivo .markdown de la carpeta
doc/api en el rbol del cdigo fuente de node. La documentacin es generada utilizando el programa
tools/doc/generate.js . La plantilla html esta ubicada en doc/template.html .
ndice de estabilidad
A lo largo de la documentacin ver las indicaciones de estabilidad de cada seccin. La API Node.js es algo
cambiante, y a medida que madura, ciertas partes son ms confiables que otras. Algunas estn tan probados, y
son tan confiables que es poco probable que cambien en lo absoluto. Otros son completamente nuevos y
experimentales, o se considera peligroso y en proceso de ser rediseado.
Los avisos se parecen a esto:
Los ndices de estabilidad son los siguientes:
salida JSON
Cada archivo HTML en el markdown tiene un correspondiente archivo JSON con los mismos datos.
7/23/2019 Node Js Manual Esp
12/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 12/
var http = require('http');
http.createServer(function (request, response) {
response.writeHead(200, {'Content-Type': 'text/plain'});
response.end('Hola mundo\n');
}).listen(8124);
console.log('Servidor ejecutndose en http://127.0.0.1:8124/');
> node example.js
Servidor ejecutndose en http://127.0.0.1:8124/
{Object} El namespace del objeto global.
{Object}
{Object}
{Function}
Esta caracterstica se agreg a partir de node v0.6.12. Es experimental.
Sinopsis
Un ejemplo de un servidor webescrito en Node que responde con 'Hola mundo':
Para ejecutar el servidor, copie el cdigo en un fichero llamado example.js y ejectelo con el programa node
Todos los ejemplos en est documentacin son ejecutados de manera similar.
Objetos Globales
Estos objectos estan disponibles en todos los mdulos. Algunos de estos objetos no estn en el mbito global pe
si a nivel mdulo - Tmelo en cuenta.
global
En los navegadores, el ambito del nivel superior es el ambito global. Esto significa que en los navegadores si tu
estas en el ambito global var something definir una variable. En Node esto es diferente. El ambito del nivel
superior no es el ambito global; var something dentro de un mdulo de node ser local para este mdulo.
process
El objeto process. Vase la seccin objeto process.
console
Usado para la salida de pantalla de stdout y stderr. Vase la seccin stdio
Class: Buffer
7/23/2019 Node Js Manual Esp
13/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 13/
{Function}
Object
{String}
console.log(__filename);
// /Users/mjr/example.js
{String}
console.log(__dirname);
// /Users/mjr
{Object}
Utilizado para manejar datos binarios . Vase la seccin buffer.
require()
Para requerir mdulos. Vase la seccin Mdules. require no es global sino ms bien local para cada mdulo
require.resolve()
Usa el mecanismo interno de require() para buscar la localizacin de un mdulo, pero en lugar de cargar el
mdulo, solo devuelve el nombre del fichero que lo contiene.
require.cache
Modules are cached in this object when they are required. By deleting a key value from this object, the next
require will reload the module.
__filename
El nombre del fichero que contiene al script que esta siendo ejecutado. Este esta definido como ruta absoluta, y
no es necesariamente el mismo nombre del fichero pasado como argumento en la linea de comando. El valor
dentro del mdulo es la ruta al mismo.
Ejemplo: Ejecutando node example.js desde /User/mjr
__filename isn't actually a global but rather local to each module.
__dirname
El nombre del directorio del script que esta siendo ejecutado.
Ejemplo:Ejecutando node example.js desde /User/mjr
__dirname isn't actually a global but rather local to each module.
module
7/23/2019 Node Js Manual Esp
14/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 14/
Stability: 4 - API Frozen
{Object}
console.log('count: %d', count);
Una referencia al actual mdulo. En particular module.exports es igual al objeto exports . module isn't
actually a global but rather local to each module.
Vase la documentacin del sistema de mdulospara ms informacin.
exports
An object which is shared between all instances of the current module and made accessible through require(
exports is the same as the module.exports object. exports isn't actually a global but rather local to each
module.
See the module system documentationfor more information.
See the module sectionfor more information.
setTimeout(cb, ms)
clearTimeout(t)
setInterval(cb, ms)
clearInterval(t)
The timer functions are global variables. See the timerssection.
console
For printing to stdout and stderr. Similar to the console object functions provided by most web browsers, here
the output is sent to stdout or stderr.
console.log()
Prints to stdout with newline. This function can take multiple arguments in a printf() -like way. Example:
If formatting elements are not found in the first string then util.inspect is used on each argument. See
util.format()for more information.
console.info()
Same as console.log .
console.warn()
console.error()
Same as console.log but prints to stderr.
7/23/2019 Node Js Manual Esp
15/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 15/
console.time('100-elements');
for (var i = 0; i < 100; i++) {
;
}
console.timeEnd('100-elements');
console.dir(obj)
Uses util.inspect on obj and prints resulting string to stderr.
console.time(label)
Mark a time.
console.timeEnd(label)Finish timer, record output. Example
console.trace()Print a stack trace to stderr of the current position.
console.assert()
Same as assert.ok() .
Timer
setTimeout(callback, delay, [arg], [...])
Para programar la ejecucin de callback despus de delay milisegundos. Devuelve un timeoutId para un
posible uso con clearTimeout() . Opcionalmente, tu puedes tambin pasar argumentos al callback.
clearTimeout(timeoutId)
Evita la ejecucin de un callback por uno de sus disparadores.
setInterval(callback, delay, [arg], [...])
Para programar la repeticin repetitiva de un callback cada delay milisegundos. Devuelve un intervalId
para un posible uso con clearInterval() . Opcionalmente, tu puedes tambin pasar argumentos al callback.
clearInterval(intervalId)
Evita la ejecucin de un callback por uno de sus disparadores.
Mdulos
7/23/2019 Node Js Manual Esp
16/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 16/
var circle = require('./circle.js');
console.log( 'El rea de un crculo con radio 4 es '
+ circle.area(4));
var PI = Math.PI;
exports.area = function (r) {
return PI * r * r;
};
exports.circumference = function (r) {
return 2 * PI * r;
};
Node posee un secillo sistema de carga. En Node, los ficheros y mdulos son de correspondencia biunvoca. A
modo de ejemplo, foo.js carga el mdulo circle.js en el mismo directorio.
El contenido de foo.js :
El contenido de circle.js :
El mdulo circle.js ha exportado las functiones area() y circumference() . Para exportar a un objeto,
debe aadir el objeto especial exports .
Las variables locales del mdulo sern privadas. En este ejemplo la variable PI es privada en circle.js .
Mdulos bsicos
Node posee varios mdulos compilados en binario. Estos mdulos son descritos con ms detalle en las siguient
secciones del documento.
Los mdulos bsicos son definidos en el cdigo fuente de node en la carpeta lib/ .
Los mdulos bsicos tienen la preferencia de cargarse primero si su indentificador es pasado desde require()
Por ejemplo, require('http') siempre devolver lo construido en el mdulo HTTP, incluso si hay un fichero
con ese nombre.
Mdulo File
Si el nombre exacto del fichero no es encontrado, entonces node intentar cargar el nombre del fichero seguido
de la extensin .js , y a continuacin con .node .
Los ficheros .js son interpretados como ficheros de texto en JavaScript, y los ficheros .node son
interpretados como extensiones de mdulos compilados cargados con dlopen .
Un mdulo con el prefijo '/' indica la ruta absoluta al fichero. Por ejemplo,
require('/home/marco/foo.js') cargar el fichero en /home/marco/foo.js .
Un mdulo con el prefijo './' es relativo al fichero llamado con require() . Es decir, circle.js debe esta
en el mismo directorio que foo.js para que require('./circle') lo encuentre.
Si se omite el uso de '/' o './' en el fichero, el mdulo puede ser un "mdulo bsico" o se cargar desde la carpeta
node_modules .
7/23/2019 Node Js Manual Esp
17/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 17/
/home/ry/projects/node_modules/bar.js
/home/ry/node_modules/bar.js
/home/node_modules/bar.js
/node_modules/bar.js
/home/ry/projects/foo/node_modules/bar/node_modules/baz/node_modules/asdf.js
/home/ry/projects/foo/node_modules/bar/node_modules/asdf.js
/home/ry/projects/foo/node_modules/asdf.js
{ "name" : "some-library",
"main" : "./lib/some-library.js" }
Cargando desde la carpeta no e mo ules
Si el identificador del mdulo pasa a require() no es un mdulo nativo, y no comienza con '/' , '../' , o
'./' , entonces node inicia en el directorio principal del mdulo actual, y aade /node_modules , e intenta
cargar el mdulo desde esa ubicacin.
Si no se encuentra, entonces se dirige al directorio principal, y as sucesivamente, hasta que el mdulo es
encontrado, hasta en la raz del rbol es encontrado.
Por ejemplo, si el fichero en '/home/ry/projects/foo.js' es llamado como require('bar.js') , entoncnode buscara en las siguientes ubicaciones, en este orden:
Esto permite que los programas encuentren sus dependencias, de modo que no entren en conflicto.
Optimizacin de proceso de bsqueda en no e mo ules
Cuando existen muchos niveles de dependencias anidadas, es posible que los rboles de directorios tomen
bastante tiempo. Las siguientes optimizaciones se realizan para este proceso.
Primero, /node_modules no debe ser anexado a una carpeta ya que termina en /node_modules .
Segundo, si el fichero es llamado con require() ya esta en la jerarqua de node_modules , entonces el nivel
superior de la carpeta node_modules es tratada como la raz del rbol de bsqueda.
For example, if the file at '/home/ry/projects/foo/node_modules/bar/node_modules/baz/quux.js'
called require('asdf.js') , then node would search the following locations:
Por ejemplo, si el fichero en '/home/ry/projects/foo/node_modules/bar/node_modules/baz/quux.js'llama como require('asdf.js') , entonces node buscara en las siguientes ubicaciones:
Carpetas como mdulos
Es conveniente organizar los programas y libreras en los mismos directorios, y proporcionar un nico punto d
entrar a la biblioteca. Existe tres formas en donde una carpeta pueda usar require() como un argumento.
Lo primero es crear el fichero package.json en la raz de la carpeta, que especifique el mdulo main . Un
ejemplo de package.json podra verse como esto:
Si fuera una carpeta en ./some-library , entonces require('./some-library') tratara de cargar
./some-library/lib/some-library.js .
Este es el mayor grado de conciencia de Node con el fichero package.json .
7/23/2019 Node Js Manual Esp
18/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 18/
./some-library/index.js
./some-library/index.node
require(X)
1. Si X es mdulo bsico,
a. devolver el mdulo bsico
b. STOP
2. Si X inicia con con `./` or `/`,
a. LOAD_AS_FILE(Y + X)
b. LOAD_AS_DIRECTORY(Y + X)
3. LOAD_NODE_MODULES(X, dirname(Y))
4. THROW "not found"
LOAD_AS_FILE(X)
1. Si X es un fichero, cargar X como texto JavaScript. STOP2. Si X.js es un fichero, cargar X.js como texto JavaScript. STOP
3. Si X.node es un fichero, cargar X.node como extensin binaria. STOP
LOAD_AS_DIRECTORY(X)
1. Si X/package.json es un fichero,
a. Parsear X/package.json, y buscar el campo "main".
b. let M = X + (json main field)
c. LOAD_AS_FILE(M)
2. LOAD_AS_FILE(X/index)
LOAD_NODE_MODULES(X, START)
1. let DIRS=NODE_MODULES_PATHS(START)
2. for each DIR in DIRS:
a. LOAD_AS_FILE(DIR/X)
b. LOAD_AS_DIRECTORY(DIR/X)
NODE_MODULES_PATHS(START)
1. let PARTS = path split(START)
2. let ROOT = index es una instancia de "node_modules" en PARTS, o 0
3. let I = count of PARTS - 1
4. let DIRS = []
5. while I > ROOT,
a. if PARTS[I] = "node_modules" CONTINUE
c. DIR = path join(PARTS[0 .. I] + "node_modules")
Si no hay ningn fichero package.json presente en el directorio, entonces node intentar cargar el fichero
index.js o index.node de ese directorio. Por ejemplo, si no hay ningun fichero package.json en el ejemplo
anterior, entonces require('./some-library') intentar cargar:
Almacenamiento en la cach
Los mdulos se alamacenan en la cach despus que fueron cargados por primera vez. Esto significa (entre otra
cosas) que todas las llamadas a require('foo') devuelve el mismo ojecto exacto, si se resolvera en el mismo
fichero
Todos juntos...
Para obtener el nombre exacto del fichero que se cargar cuando se llame con require() , use la funcin
require.resolve() .
Uniendo todo lo anterior, aqu se muestra un algoritmo de alto nievel en pseudocdigo de lo que hara
require.resolve :
7/23/2019 Node Js Manual Esp
19/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 19/
b. DIRS = DIRS + DIR
6. return DIRS
[ '/home/micheil/.node_modules',
'/usr/local/lib/node_modules' ]
1: '/home/micheil/.node_modules/bar/baz.js'
2: '/usr/local/lib/node_modules/bar/baz.js'
/home/micheil/.node_modules:/usr/local/lib/node_modules
require.paths = [ '/usr/lib/node' ];
require.paths.push('./lib');
Cargar desde las carpetas de require p ths
En node, require.paths es un array de strings que representa las rutas de acceso a los mdulos cuando estos
no tienen el prefijo '/' , './' , o '../' . Por ejemplo, si establece require.paths como:
A continuacin se llama a require('bar/baz.js') y buscar en las siguientes ubicaciones:
El array en require.paths puede ser transformado en tiempo de ejecucin para modificar este
comportamiento.
Se establece inicialmente la variable de entorno NODE_PATH , que contiene una lista delimitada por dos puntos
de rutas exactas. En el anterior ejemplo, la variable de entorno NODE_PATH puedo haber sido establecido como
Cargar las ubicaciones desde require.paths slo se realiza si el mdulon no se ha encontrado desde el
algoritmo node_modules . Los mdulos globarles son de baja prioridad para las dependencias de los paquetes
Nota: Por favor evite la modificacin de require p ths
Por razones de compatibilidad, require.paths sigue siendo la primera prioridad en el proceso de bsqueda
mdulos. Sin embargo, puede desaparecer en una prxima versin.
Aunque pareca una buena idea en aquel tiempo, y ha permitido ser un experimento muy til, en la prctica la
transformacin de require.paths es una lista a menudo con problemas y dolores de cabeza.
Establecer require p thsa algn otro valor para nada.
Esto no hace nada de lo que se podra esperar:
Todo lo que se hace aqu es perder la referencia actualde node en la bsqueda de rutas, y crea una nueva
referencia a otra cosa que no sirve para nada.
Poner rutas relativas en require p thses... raro.
Si hace esto:
entonces noaada la ruta completa donde se resolvi ./lib en este sistema de ficheros. En cambio, esto aad
7/23/2019 Node Js Manual Esp
20/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 20/
/usr/lib/node/foo/1.2.3/- Contenido del paquete foo, versin 1.2.3.
/usr/lib/node/bar/4.3.2/- Contenido del paquete barque es dependencia de foo.
/usr/lib/node/foo/1.2.3/node_modules/bar - Enlace simblico a /usr/lib/node/bar/4.3.2/.
/usr/lib/node/bar/4.3.2/node_modules/* - Enlaces simblicos a los paquetes que bardepende.
literalmente './lib' , lo que significa si hace require('y.js') en /a/b/x.js , entonces se ve en
/a/b/lib/y.js . Si a continuacin se usa require('y.js') en /l/m/n/o/p.js , entonces se ve en
/l/m/n/o/lib/y.js .
En la prctica, las personas han usado esto de una manera ad hoc para la dependencia de paquetes, pero esta
tcnica es frgil.
Cero aislamiento
Existe (debido a un diseo lamentable), slo un array require.paths utilizado para todos los mdulos.
Como resultado, si un programa en node trata de confiar de este comportamiento, es posible que de manera
permanente y sutilmente altere el comportamiento de todos los programas escritos en node el mismo proceso.
media que el stack crece, y se reune ms funcionalidades, ya que esto es un problema con las partes que
interactan en forma difciles de predecir.
Addenda: Consejos para administrar paquetes
La semntica de Node en la funcin require() fue diseada para ser lo suficientemente general para soporta
una serie de esctructuras de directorios. Los paquetes de programas como dpkg , rpm , y npm se esperan que
sean construidos como paquetes nativos desde los mdulos de Node sin modificaciones.
A continuacin sugerimos una estructura en la que puede trabajar:
Supongamos que se desea tener en /usr/lib/node// se mantenga el
contenido de una versin especfica de un paquete.
Los paquetes pueden depender uno del otro. Con el fin de instalar el paquete foo , puede que tenga que instala
una versin especfica del paquete bar . El paquete bar puede tener dependencias, y en algunos casos, estas
dependencias, incluso pueden entrar en conflicto o crear ciclos.
Desde la bsqueda con Node de la ruta de cualquier mdulo cargado (es decir, resueltos los enlaces
simblicos), y luego de buscar sus dependencias en la carpeta node_modules como se describi anteriormentesta situacin es muy simple de resolver con la siguiente arquitectura:
Por lo tanto, incluso si se encuentra, o si hay problemas de dependencias, cada mdulo ser capza de obtener u
versin de su dependencia para ser utilizada.
Cuando el cdigo en el paquete foo utiliza require('bar') , se obtendr la versin al enlace simblico en
/usr/lib/node/foo/1.2.3/node_modules/bar . Luego, cuando el cdigo del paquete bar llame arequire('quux') , obtendr la versin simblica en /usr/lib/node/bar/4.3.2/node_modules/quux .
Adems, para hacer el proceso de bsqueda del mdulo an ms ptima, en lugar de poner los paquetes
directamente en /usr/lib/node , se puede poner estos en /usr/lib/node_modules// .
Entonces node no se molestar en buscar por dependencias no encontradas en /usr/node_modules o
/node_modules .
A fin de que los mdulos disponibles para node en REPL, puedan ser tiles, aade tambin la carpeta
/usr/lib/node_modules a la variable de entorno $NODE_PATH . Desde el mdulo de bsquedas usando la
carpeta node_modules donde todo es relativo, y basado en la ruta real de los ficheros llamados por
require() , los paquetes pueden ser llamado desde cualquier lugar.
7/23/2019 Node Js Manual Esp
21/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 21/
exports.hello = 'world';
#include
using namespace v8;
extern "C" void
init (Handle target)
{
HandleScope scope;
target->Set(String::New("hello"), String::New("world"));
}
srcdir = '.'
blddir = 'build'
VERSION = '0.0.1'
def set_options(opt):
opt.tool_options('compiler_cxx')
def configure(conf):
conf.check_tool('compiler_cxx')
conf.check_tool('node_addon')
def build(bld):
obj = bld.new_task_gen('cxx', 'shlib', 'node_addon')
Addons
Addons son objetos enlazados dinamicamente. Ellos pueden ser el pegamento entre las librerias C y C++ con
NodeJS. La API (en estos momentos) es algo compleja, siendo necesario el conocimiento de varias librerias.
V8 JavaScript, una libreria C++. Usada como interfaz con JavaScript: creacin de objetos, llamada a
funciones, etc. Documentada extensamente en fichero de cabecera v8.h ( deps/v8/include/v8.h en e
arbol de fuentes de Node).
libev, C libreria para crear un bucle de evento. En cualquier momentos que sea necesario esperar para que
el descriptor de un fichero llegue a ser legible, esperar por un timer, o esperar por una seal, que llevarlo cabo ser necesario utilizar el intefez de libev. Esto es, si tu realizas cualquier I/O, necesitaras usar libev.
Node usa en bucle de evento EV_DEFAULT . La documentacin puede ser encontrada aqui.
libie, librera para manejar el pool de las hebras. Usado para hacer llamadas bloqueantes POSIX del sistem
de forma asincrona. Una amplia variedad de envolturas ya existe para cada llamada, en src/file.cc po
lo que posiblemente no tengas que usarla. Si necesitas usarla echale un vistazo al fichero de cabecera
deps/libie/eio.h .
Librerias internas de Node. La ms importante es la clase node::ObjectWrap que probablemente de la
que tu desearas heredar.
Otras. Mira en deps/ para cualquier cosa disponible.
Node estticamente compila todas las dependencias dentro del ejecutable. Cuando compiles t mdulo, tu no
tendrs que preocuparte sobre enlazar ninguna de estas librerias.
Para comenzar hagamos un pequeo Addon el cual har lo siguiente in C++:
Para comenzar creamos el fichero hello.cc :
Este cdigo fuente necesita ser construido dentro de hello.node , el Addon binario. Para hacer esto nosotros
creamos un fichero llamado wscript el cual es cdigo python y se ve como sigue:
7/23/2019 Node Js Manual Esp
22/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 22/
obj.target = 'hello'
obj.source = 'hello.cc'
extern 'C' void init (Handle target)
process.on('exit', function () {
process.nextTick(function () {
console.log('Esto no se ejecutar');
});
console.log('Apunto de salir.');
});
process.on('uncaughtException', function (err) {
console.log('Excepcin recogida: ' + err);
});
Lanzando node-waf configure build crearemos un fichero build/default/hello.node el cual es
nuestro Addon.
node-waf es soloWAF, el sistema de construccin basado en python. node-waf is proporcionado para la
facilidad de los usuarios.
Todos los Addons de Node deben exportar un funcin llamada init con la siguiente constitucin:
Por el momento, esta es toda la documentacin sobre Addons. Por favor, mira
https://github.com/ry/node_postgrespara un ejemplo real.
process
El objeto process es un objeto global y puede ser accedido desde cualquier parte. Es una instancia deEventEmitter .
Evento: 'exit'
function () {}
Emitido cuando el proceso est apunto de salir. Es un buen hook para realizar un control del tiempo constante
del estado del mdulo (por ejemplo para tests unitarios).
El bucle del evento principal no seguir ejecutndose despus de finalizar el callback 'exit', por lo tanto los time
no pueden ser programados.
Ejemplo escuchando a exit :
Evento: 'uncaughtException'
function (err) { }
Emitido cuando una excepcin es devuelta hacia el bucle de evento. Si se ha aadido un listener a esta excepci
no se producir la accin por defecto (imprimir una traza del stack y salir).
Ejemplo escuchando a uncaughtException :
7/23/2019 Node Js Manual Esp
23/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 23/
setTimeout(function () {
console.log('Esto seguir ejecutndose.');
}, 500);
// Se fuerza una excepcin, pero no se recoge.
nonexistentFunc();
console.log('Esto no se ejecutar.');
// Empieza leyendo de stdin para evitar salir.
process.stdin.resume();
process.on('SIGINT', function () {
console.log('Recibido SIGINT. Haz Control-D para salir.');
});
console.log = function (d) {
process.stdout.write(d + '\n');
};
Ntese que uncaughtException es un mecanismo muy bsico para manejar excepciones. Usando try / catch
tu programa te dar ms control sobre el flujo de tu programa. Especialmente para aplicaciones de servidor questn diseados para ejecutarse eternamente, uncaughtException puede ser un mecanismo muy til de
seguridad.
Eventos de seal
function () {}
Emitido cuando los procesos reciben una seal. Mirar sigaction(2) para una lista de nombres de seal estndar
POSIX como SIGINT, SIGUSR1, etc.
Ejemplo escuchando a SIGINT :
Una manera sencilla de enviar la seal SIGINT es con Control-C en la mayoria de aplicaciones de terminal.
process.stdoutUn Stream de Escritura para stdout .
Ejemplo: la definicin de console.log
process.stderrUn stream de escritura para stderr. Las escrituras en este stream son bloqueantes.
process.stdin
Un Stream de Lectura para stdin. El stream stdin se detiene por defecto, as que se tiene que llamar a
process.stdin.resume() para leer de l.
Ejemplo de como abir la entrada estndard (stdin) y escuchar a ambos eventos:
7/23/2019 Node Js Manual Esp
24/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 24/
process.stdin.resume();
process.stdin.setEncoding('utf8');
process.stdin.on('data', function (chunk) {
process.stdout.write('data: ' + chunk);
});
process.stdin.on('end', function () {
process.stdout.write('end');
});
// imprimir process.argv
process.argv.forEach(function (val, index, array) {
console.log(index + ': ' + val);
});
$ node process-2.js one two=three four
0: node
1: /Users/mjr/work/node/process-2.js
2: one
3: two=three
4: four
/usr/local/bin/node
console.log('Directorio inicial: ' + process.cwd());
try {
process.chdir('/tmp');
console.log('Directorio nuevo: ' + process.cwd());
}
catch (err) {
console.log('chdir: ' + err);
}
process.argv
Un array que contiene los argumentos de la lnea de comandos. El primer elemento ser 'node', el segundo
elemento ser el nombre del fichero JavaScript. Los siguientes elementos sern argumentos adicionales de la
lnea de comandos.
Generar:
process.execPath
Es la ruta absoluta del ejecutable que inici el proceso.
Ejemplo:
process.chdir(directory)
Cambia el directorio actual de trabajo del proceso o lanza una excepcin si falla.
7/23/2019 Node Js Manual Esp
25/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 25/
console.log('Directorio actual: ' + process.cwd());
process.exit(1);
console.log('Actual gid: ' + process.getgid());
console.log('Actual gid: ' + process.getgid());
try {
process.setgid(501);
console.log('Nuevo gid: ' + process.getgid());
}
catch (err) {
console.log('Fallo al cambiar el gid: ' + err);
}
console.log('Actual uid: ' + process.getuid());
process.cwd()
Devuelve el directorio actual de trabajo del proceso.
process.env
Un objeto que contiene el entorno del usuario. Mirar environ(7).
process.exit(code=0)
Termina el proceso con el code especificado. Si se omite, exit usa el cdigo de 'xito' 0 .
Para salir con un cdigo de 'fallo':
El shell que ha ejecutado node debera ver 1 como cdigo de salida.
process.getgid()
Obtiene la identidad de grupo del proceso. (Mirar getgid(2).) Es el id de grupo numrico, no el nombre del grup
process.setgid(id)
Establece la identidad de grupo del proceso. (Mirar setgid(2).) Acepta tanto un ID numrico como una cadena d
texto con el nombre del grupo. Si se especifica el nombre del grupo, el mtodo se bloquea mientras lo resuelve a
un ID numrico.
process.getuid()
Obtiene la identidad de usuario del proceso. (Mirar getuid(2).) Es la id de usuario nmerica, no el nombre de
usuario.
7/23/2019 Node Js Manual Esp
26/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 26/
console.log('Actual uid: ' + process.getuid());
try {
process.setuid(501);
console.log('Nuevo uid: ' + process.getuid());
}
catch (err) {
console.log('Fallo al establecer uid: ' + err);
}
console.log('Versin: ' + process.version);
console.log('Prefijo: ' + process.installPrefix);
process.on('SIGHUP', function () { console.log('Recibida seal SIGHUP.');
});
setTimeout(function () {
console.log('Saliendo.');
process.exit(0);
}, 100);
process.kill(process.pid, 'SIGHUP');
process.setuid(id)
Establece la identidad de usuario del proceso. (Mirar setuid(2).) Acepta tanto un ID numrico como una cadena
de texto con el nombre de usuario. Si se especifica el nombre de usuario, el mtodo se bloquea mientras lo
resuelve a un ID numrico.
process.version
Una propiedad dentro del compilado que expone NODE_VERSION .
process.installPrefix
Una propiedad dentro del compilado que expone NODE_PREFIX .
process.kill(pid, signal='SIGTERM')
Envia una seal a un proceso. pid es la id de proceso y signal es la cadena de texto que describe la seal a
enviar. Los nombres de seales son cadenas de texto como 'SIGINT' o 'SIGUSR1'. Si se omite, la seal ser
'SIGTERM'. Mirar kill(2) para ms informacin.
Notar que ya que el nombre de la funcin es process.kill , se trata solo de un emisor de seales, como la
llamada a sistema kill . La seal enviada puede hacer algo ms que matar el proceso escogido.
Ejemplo de como enviarse una seal a uno mismo:
7/23/2019 Node Js Manual Esp
27/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 27/
console.log('El pid de este proceso es ' + process.pid);
console.log('La plataforma es ' + process.platform);
var util = require('util');
console.log(util.inspect(process.memoryUsage()));
{ rss: 4935680,
vsize: 41893888,
heapTotal: 1826816,
heapUsed: 650472 }
process.nextTick(function () {
console.log('nextTick callback');
});
var oldmask, newmask = 0644;
process.pid
El PID del proceso.
process.title
Getter/setter para establecer lo que mostrar 'ps'.
process.platform
En que plataforma se est ejecutando. 'linux2' , 'darwin' , etc.
process.memoryUsage()Devuelve un objeto describiendo el uso de la memoria del proceso Node.
Generar:
heapTotal y heapUsed se refieren al uso de la memoria de V8.
process.nextTick(callback)
En la siguiente iteracin del bucle del evento se llama a callback. No es simplemente un alias para
setTimeout(fn, 0) , es mucho ms eficiente.
process.umask([mask])
Establece o lee la mscara del modo de creacin del fichero del proceso. Los procesos hijos heredan la mscara
del proceso padre. Devuelve la antigua mscara si se pasa el argumento mask , si no devuelve la mscara actual
7/23/2019 Node Js Manual Esp
28/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 28/
oldmask = process.umask(newmask);
console.log('Cambiada umask de: ' + oldmask.toString(8) +
' a ' + newmask.toString(8));
Stability: 5 - Locked
%s- String.
%d- Number (both integer and float).
%j- JSON.
%%- single percent sign ('%'). This does not consume an argument.
util.format('%s:%s', 'foo'); // 'foo:%s'
util.format('%s:%s', 'foo', 'bar', 'baz'); // 'foo:bar baz'
util.format(1, 2, 3); // '1 2 3'
require('util').debug('mensaje en stderr');
require('util').log('Mensaje con marca de tiempo.');
util
Estas funciones estan en el mdulo 'util' . Usa require('util') para acceder a ellas.
util.format()
Returns a formatted string using the first argument as a printf -like format.
The first argument is a string that contains zero or moreplaceholders. Each placeholder is replaced with the
converted value from its corresponding argument. Supported placeholders are:
If the placeholder does not have a corresponding argument, the placeholder is not replaced.
If there are more arguments than placeholders, the extra arguments are converted to strings with
util.inspect() and these strings are concatenated, delimited by a space.
If the first argument is not a format string then util.format() returns a string that is the concatenation of a
its arguments separated by spaces. Each argument is converted to a string with util.inspect() .
util.debug(string)
Una funcin de salida sncrona. Bloquer el proceso y pondr string inmediatamente en stderr .
util.log(string)
Salida con timestamp en stdout .
7/23/2019 Node Js Manual Esp
29/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 29/
var util = require('util');
console.log(util.inspect(util, true, null));
var util = require('util');
util.isArray([])
// true
util.isArray(new Array) // true
util.isArray({})
// false
var util = require('util');
util.isRegExp(/some regexp/)
// true
util.isRegExp(new RegExp('another regexp'))
// true
util.isRegExp({})
// false
util.inspect(object, showHidden=false, depth=2)
Devuelve la cadena que representa a object , lo cual es til para corregir fallos.
Si showHidden es true , entonces las propiedades no-enumerables del objeto sern mostradas tambin. Por
omisin es false .
Si depth es proporcionado, le dice a inspect cuantas veces tiene que recurrir mientras formatea el objeto.Esto es til para objetos muy largos y complejos.
Por defecto solo se recurre un par de veces. Para hacer que recurra indefinidamente pasa null a depth .
Si colors es true , entonces la salida mostrar los estilos con los cdigo de colores en ANSI. Por omisin es
false .
Ejemplo de inspeccionar todas las propiedades del objeto util :
util.isArray(object)
Returns true if the given "object" is an Array . false otherwise.
util.isRegExp(object)
Returns true if the given "object" is a RegExp . false otherwise.
util.isDate(object)
Returns true if the given "object" is a Date . false otherwise.
7/23/2019 Node Js Manual Esp
30/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 30/
var util = require('util');
util.isDate(new Date())
// true
util.isDate(Date())
// false (without 'new' returns a String)
util.isDate({})
// false
var util = require('util');
util.isError(new Error())
// true
util.isError(new TypeError())
// true
util.isError({ name: 'Error', message: 'an error occurred' })
// false
var util = require("util");
var events = require("events");
function MyStream() {
events.EventEmitter.call(this);
}
util.inherits(MyStream, events.EventEmitter);
MyStream.prototype.write = function(data) {
this.emit("data", data);
}
var stream = new MyStream();
console.log(stream instanceof events.EventEmitter); // true
util.isError(object)
Returns true if the given "object" is an Error . false otherwise.
util.pump(readableStream, writableStream, [callback])
Experimental
Lee los datos desde readableStream y los envia al writableStream . Cuando
writableStream.write(data) devuelve false readableStream ser pausado hasta que ocurra el evento
drain sobre writableStream . callback tiene un error como nico argumento y es llamada cuando
writableStream es cerrado o cuando ocurre un error.
util.inherits(constructor, superConstructor)
Hereda los mtodos del prototype desde un constructordentro de otro. El prototype del constructor ser
configurado a un nuevo objecto creado desde superConstructor .
Como mejora adicional, superConstructor ser accesible atravez de la propiedad constructor.super_ .
7/23/2019 Node Js Manual Esp
31/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 31/
console.log(MyStream.super_ === events.EventEmitter); // true
stream.on("data", function(data) {
console.log('Received data: "' + data + '"');
})
stream.write("It works!"); // Received data: "It works!"
server.on('connection', function (stream) {
console.log('someone connected!');
});
server.once('connection', function (stream) {
console.log('Ah, we have our first user!');
});
Eventos
Muchos objetos en Node emiten eventos: un net.Server emite un evento cada vez que se establece una
conexin, un fs.readStream emite un evento cuando se abre un fichero. Todos los objectos que emiten
eventos son instancias de events.EventEmitter . Puedes usar este mdulo haciendo require("events");
Normalmente, los nombres de los eventos siguen la notacion camel-case, sin embargo, no hay ninguna
restriccin en este aspecto y cualquier cadena ser aceptada.
Se pueden adjuntar funciones a objetos, para que sean ejecutadas cuando se emita un evento. Estas funciones
reciben el nombre de listeners.
events.EventEmitter
Para usar la clase EventEmitter, haz de importarla haciendo require('events').EventEmiter .
Cuando una instancia de la clase EventEmitter se encuentra con un error, la accin tpica es emitir un evento d
error. Los eventos de error son tratados como un caso especial en node. Si no tiene un listener asociado la acci
por defecto ser imprimir la traza de la pila y salir del programa
Todos los EventEmitters emite el evento 'newListener' cuando se aaden nuevos listeners.
emitter.addListener(event, listener)emitter.on(event, listener)
Aade un listener al final del array de listeners para el evento espeficicado
emitter.once(event, listener)
Aade un listener al evento. El listener se invocar slo la primera vez que se dispara el evento. luego se elimin
emitter.removeListener(event, listener)
Elimina un listener del array de listeners asociado al evento especificado Atencin: modifica el indice del arra
de listeners
7/23/2019 Node Js Manual Esp
32/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 32/
var callback = function(stream) {
console.log('someone connected!');
};
server.on('connection', callback);
// ...
server.removeListener('connection', callback);
server.on('connection', function (stream) {
console.log('someone connected!');
});
console.log(util.inspect(server.listeners('connection')); // [ [Function] ]
Stability: 3 - Stable
emitter.removeAllListeners(event)Elimina todos los listeners del array de listeners asociado al evento especificado
emitter.setMaxListeners(n)
Por defecto los EventEmitters imprimirn un warning si se le aaden ms de 10 listeners. Este comportamiento
por defecto ayuda a encontrar memory leaks. Obviamente no todos los EventEmitters deberan limitarse a 10.
Esta funcin permite incrementar este valor. Use cero para establecer un valor ilimitado.
emitter.listeners(event)
Devuelve un array de listeners asociado al evento especificado. Este array puede ser manipulado, por ejemplo,
eliminando un listener.
emitter.emit(event, [arg1], [arg2], [...])
Llama a cada uno de los listeners en el orden en el que fueron pasados por parmetros
Event: 'newListener'
function (event, listener) { }
Este evento es emitido cada vez que se aade un nuevo listener.
Buffer
El puro Javascript es amigable con Unicode, pero no se lleva tan bien con los datos binarios. Cuando tratamos
con streams TCP o ficheros del sistema, es necesario manejar streams de octets. Node tiene algunas estrategias
para manipular, crear, y consumir streams de octets.
Los datos en Raw son almacenados en instancias de la clase Buffer . Un Buffer es similar a un array de
integers pero correspondiendo a una localizacin en raw de la memeria fuera del heap de V8. Un Buffer no
puede ser redimencionado.
La clase Buffer es global, dado que es muy raro hacer un require('buffer') .
7/23/2019 Node Js Manual Esp
33/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 33/
sizeNumber
arrayArray
strString - string to encode.
encodingString - encoding to use, Optional.
stringString - data to be written to buffer
offsetNumber, Optional, Default: 0
lengthNumber, Optional
encodingString, Optional, Default: 'utf8'
buf = new Buffer(256);
Convertir entre Buffers y objectos String de Javascript requiere de un mtodo de codificacin explcito. Aqu
estn las diferentes cadenas de codificacin.
'ascii' - solo para datos de 7 bit ASCII. Este mtodo de codificacin es muy rpido y dejar el bit alto s
est configurado. Note that this encoding converts a null character ( '\0' or '\u0000' ) into 0x20
(character code of a space). If you want to convert a null character into 0x00 , you should use 'utf8' .
'utf8' - Multiples bytes de caracteres con codificacin Unicode. Muchas pginas webs y otros formatos
de documentos usan UTF-8.
'ucs2' - 2-bytes, de caracteres con codificacin little endian Unicode. Slo pueden codificar
BMP(Basic Multilingual Plane, U+0000 - U+FFFF).'base64' - String codificado a Base64.
'binary' - Una forma de codificar datos binarios en Raw dentro de strings pero solo usando los primero
8 bits de cada caracter. Este mtodo de codificacin es obsoleto y debe ser evitado en favor del objeto
Buffer donde sea posible. Esta codificacin ser eliminada en futuras versiones de Node.
'hex' - Encode each byte as two hexidecimal characters.
Class: Buffer
The Buffer class is a global type for dealing with binary data directly. It can be constructed in a variety of ways.
new Buffer(size)
Asigna un nuevo buffer de size octets.
new Buffer(array)
Asigna un nuevo buffer usando un array de octets.
new Buffer(str, [encoding])
Allocates a new buffer containing the given str . encoding defaults to 'utf8' .
buf.write(string, [offset], [length], [encoding])
Escribe string en el Buffer en offset usando el mtodo dado. offset defaults to 0 , encoding defaults t
'utf8' . length is the number of bytes to write. Devuelve el nmero de octets escritos. Si Buffer no contien
suficiente espacio para encajar en el string completo, escribir una cantidad parcial de la cadena. length
defaults to buffer.length - offset . The method will not write partial characters.
7/23/2019 Node Js Manual Esp
34/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 34/
len = buf.write('\u00bd + \u00bc = \u00be', 0);
console.log(len + " bytes: " + buf.toString('utf8', 0, len));
encodingString, Optional, Default: 'utf8'
startNumber, Optional, Default: 0
endNumber, Optional
str = "node.js";
buf = new Buffer(str.length);
for (var i = 0; i < str.length ; i++) {
buf[i] = str.charCodeAt(i);
}
console.log(buf);
// node.js
objObject
Return: Boolean
stringString
encodingString, Optional, Default: 'utf8'
Return: Number
The number of characters written (which may be different than the number of bytes written) is set in
Buffer._charsWritten and will be overwritten the next time buf.write() is called.
buf.toString([encoding], [start], [end])
Decodifica y devuelve un string con los datos de un buffer codificado con encoding (por omisin en 'utf8' )
comenzando en start (por omisin 0 ) y terminando en end (por omisin buffer.length ).
Observe el ejemplo de buffer.write() , encima.
buf[index]
Obtiene y configura el octet en index . Los valores se refieren a bytes individuales, por lo que el rango legal est
entre 0x00 and 0xFF en hexadecimal o 0 y 255 .
Ejemplo: Copiando un cadena ASCII dentro de un buffer, un byte cada vez:
Class Method: Buffer.isBuffer(obj)
Comprueba si obj es un Buffer .
Class Method: Buffer.byteLength(string, [encoding])
Da la longitud de una cadena en bytes. encoding por omisin en 'utf8' . Esto no es lo mismo como
String.prototype.length puesto que devuelve el nmero de caracteresen el string.
Ejemplo:
7/23/2019 Node Js Manual Esp
35/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 35/
str = '\u00bd + \u00bc = \u00be';
console.log(str + ": " + str.length + " characters, " +
Buffer.byteLength(str, 'utf8') + " bytes");
// + = : 9 characters, 12 bytes
Number
buf = new Buffer(1234);
console.log(buf.length);
buf.write("some string", "ascii", 0);
console.log(buf.length);
// 1234
// 1234
targetBufferBuffer object - Buffer to copy into
targetStartNumber, Optional, Default: 0
sourceStartNumber, Optional, Default: 0
sourceEndNumber, Optional, Default: 0
buf1 = new Buffer(26);
buf2 = new Buffer(26);
for (var i = 0 ; i < 26 ; i++) {
buf1[i] = i + 97; // 97 is ASCII a
buf2[i] = 33; // ASCII !}
buf1.copy(buf2, 8, 16, 20);
console.log(buf2.toString('ascii', 0, 25));
// !!!!!!!!qrst!!!!!!!!!!!!!
startNumber, Optional, Default: 0
buf.length
El tamao del buffer en bytes. Vea que esto no es necesariamente al tamao del contenido. length se refiere a
la cantidad de memoria asignada para el objeto buffer. No cambia cuando el contenido del buffer cambia.
buf.copy(targetBuffer, [targetStart], [sourceStart], [sourceEnd])
Does copy between buffers. The source and target regions can be overlapped. targetStart and sourceStar
default to 0 . sourceEnd defaults to buffer.length .
Ejemplo: construye dos Buffers, entonces copia buf1 desde el byte 16 hasta el byte 19 dentro de buf2 ,
comenzando en el octavo byte de buf2 .
buf.slice([start], [end])
7/23/2019 Node Js Manual Esp
36/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 36/
endNumber, Optional, Default: 0
var buf1 = new Buffer(26);
for (var i = 0 ; i < 26 ; i++) {
buf1[i] = i + 97; // 97 is ASCII a
}
var buf2 = buf1.slice(0, 3);
console.log(buf2.toString('ascii', 0, buf2.length));
buf1[0] = 33;
console.log(buf2.toString('ascii', 0, buf2.length));
// abc// !bc
offsetNumber
noAssertBoolean, Optional, Default: false
Return: Number
var buf = new Buffer(4);
buf[0] = 0x3;
buf[1] = 0x4;
buf[2] = 0x23;
buf[3] = 0x42;
for (ii = 0; ii < buf.length; ii++) {
console.log(buf.readUInt8(ii));
}
// 0x3
// 0x4
// 0x23
// 0x42
Devuelve un nuevo buffer el cual hace referencia a la misma memoria que el antguo, pero desplazado y cortado
por los indices start (por omisin 0 ) and end (por omisin buffer.length ).
Al modificar el nuevo buffer, modificars la memoria en el buffer original!
Ejemplo: contruye un Buffer con el alfabeto ASCII, toma un fragmento, y entonces modifica un byte desde el
Buffer original.
buf.readUInt8(offset, [noAssert])
Reads an unsigned 8 bit integer from the buffer at the specified offset.
Set noAssert to true to skip validation of offset . This means that offset may be beyond the end of the
buffer. Defaults to false .
Example:
buf.readUInt16LE(offset, [noAssert])
7/23/2019 Node Js Manual Esp
37/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 37/
offsetNumber
noAssertBoolean, Optional, Default: false
Return: Number
var buf = new Buffer(4);
buf[0] = 0x3;
buf[1] = 0x4;
buf[2] = 0x23;
buf[3] = 0x42;
console.log(buf.readUInt16BE(0));
console.log(buf.readUInt16LE(0));
console.log(buf.readUInt16BE(1));
console.log(buf.readUInt16LE(1));
console.log(buf.readUInt16BE(2));
console.log(buf.readUInt16LE(2));
// 0x0304
// 0x0403
// 0x0423
// 0x2304
// 0x2342
// 0x4223
offsetNumber
noAssertBoolean, Optional, Default: false
Return: Number
var buf = new Buffer(4);
buf[0] = 0x3;
buf[1] = 0x4;
buf[2] = 0x23;
buf[3] = 0x42;
buf.readUInt16BE(offset, [noAssert])
Reads an unsigned 16 bit integer from the buffer at the specified offset with specified endian format.
Set noAssert to true to skip validation of offset . This means that offset may be beyond the end of the
buffer. Defaults to false .
Example:
buf.readUInt32LE(offset, [noAssert])
buf.readUInt32BE(offset, [noAssert])
Reads an unsigned 32 bit integer from the buffer at the specified offset with specified endian format.
Set noAssert to true to skip validation of offset . This means that offset may be beyond the end of the
buffer. Defaults to false .
Example:
7/23/2019 Node Js Manual Esp
38/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 38/
console.log(buf.readUInt32BE(0));
console.log(buf.readUInt32LE(0));
// 0x03042342
// 0x42230403
offsetNumber
noAssertBoolean, Optional, Default: false
Return: Number
offsetNumber
noAssertBoolean, Optional, Default: false
Return: Number
offsetNumber
noAssertBoolean, Optional, Default: false
Return: Number
buf.readInt8(offset, [noAssert])
Reads a signed 8 bit integer from the buffer at the specified offset.
Set noAssert to true to skip validation of offset . This means that offset may be beyond the end of the
buffer. Defaults to false .
Works as buffer.readUInt8 , except buffer contents are treated as two's complement signed values.
buf.readInt16LE(offset, [noAssert])
buf.readInt16BE(offset, [noAssert])
Reads a signed 16 bit integer from the buffer at the specified offset with specified endian format.
Set noAssert to true to skip validation of offset . This means that offset may be beyond the end of the
buffer. Defaults to false .
Works as buffer.readUInt16* , except buffer contents are treated as two's complement signed values.
buf.readInt32LE(offset, [noAssert])
buf.readInt32BE(offset, [noAssert])
Reads a signed 32 bit integer from the buffer at the specified offset with specified endian format.
Set noAssert to true to skip validation of offset . This means that offset may be beyond the end of the
buffer. Defaults to false .
Works as buffer.readUInt32* , except buffer contents are treated as two's complement signed values.
buf.readFloatLE(offset, [noAssert])
buf.readFloatBE(offset, [noAssert])
7/23/2019 Node Js Manual Esp
39/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 39/
offsetNumber
noAssertBoolean, Optional, Default: false
Return: Number
var buf = new Buffer(4);
buf[0] = 0x00;
buf[1] = 0x00;
buf[2] = 0x80;
buf[3] = 0x3f;
console.log(buf.readFloatLE(0));
// 0x01
offsetNumber
noAssertBoolean, Optional, Default: false
Return: Number
var buf = new Buffer(8);
buf[0] = 0x55;
buf[1] = 0x55;
buf[2] = 0x55;
buf[3] = 0x55;
buf[4] = 0x55;
buf[5] = 0x55;
buf[6] = 0xd5;
buf[7] = 0x3f;
console.log(buf.readDoubleLE(0));
// 0.3333333333333333
Reads a 32 bit float from the buffer at the specified offset with specified endian format.
Set noAssert to true to skip validation of offset . This means that offset may be beyond the end of the
buffer. Defaults to false .
Example:
buf.readDoubleLE(offset, [noAssert])
buf.readDoubleBE(offset, [noAssert])
Reads a 64 bit double from the buffer at the specified offset with specified endian format.
Set noAssert to true to skip validation of offset . This means that offset may be beyond the end of the
buffer. Defaults to false .
Example:
buf.writeUInt8(value, offset, [noAssert])
7/23/2019 Node Js Manual Esp
40/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 40/
valueNumber
offsetNumber
noAssertBoolean, Optional, Default: false
var buf = new Buffer(4);
buf.writeUInt8(0x3, 0);
buf.writeUInt8(0x4, 1);
buf.writeUInt8(0x23, 2);
buf.writeUInt8(0x42, 3);
console.log(buf);
//
valueNumber
offsetNumber
noAssertBoolean, Optional, Default: false
var buf = new Buffer(4);
buf.writeUInt16BE(0xdead, 0);
buf.writeUInt16BE(0xbeef, 2);
console.log(buf);
buf.writeUInt16LE(0xdead, 0);
buf.writeUInt16LE(0xbeef, 2);
console.log(buf);
//
//
Writes value to the buffer at the specified offset. Note, value must be a valid unsigned 8 bit integer.
Set noAssert to true to skip validation of value and offset . This means that value may be too large for
the specific function and offset may be beyond the end of the buffer leading to the values being silently
dropped. This should not be used unless you are certain of correctness. Defaults to false .
Example:
buf.writeUInt16LE(value, offset, [noAssert])
buf.writeUInt16BE(value, offset, [noAssert])
Writes value to the buffer at the specified offset with specified endian format. Note, value must be a valid
unsigned 16 bit integer.
Set noAssert to true to skip validation of value and offset . This means that value may be too large for
the specific function and offset may be beyond the end of the buffer leading to the values being silently
dropped. This should not be used unless you are certain of correctness. Defaults to false .
Example:
buf.writeUInt32LE(value, offset, [noAssert])
7/23/2019 Node Js Manual Esp
41/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 41/
valueNumber
offsetNumber
noAssertBoolean, Optional, Default: false
var buf = new Buffer(4);
buf.writeUInt32BE(0xfeedface, 0);
console.log(buf);
buf.writeUInt32LE(0xfeedface, 0);
console.log(buf);
//
//
valueNumber
offsetNumber
noAssertBoolean, Optional, Default: false
valueNumber
offsetNumber
noAssertBoolean, Optional, Default: false
buf.writeUInt32BE(value, offset, [noAssert])
Writes value to the buffer at the specified offset with specified endian format. Note, value must be a valid
unsigned 32 bit integer.
Set noAssert to true to skip validation of value and offset . This means that value may be too large for
the specific function and offset may be beyond the end of the buffer leading to the values being silently
dropped. This should not be used unless you are certain of correctness. Defaults to false .
Example:
buf.writeInt8(value, offset, [noAssert])
Writes value to the buffer at the specified offset. Note, value must be a valid signed 8 bit integer.
Set noAssert to true to skip validation of value and offset . This means that value may be too large for
the specific function and offset may be beyond the end of the buffer leading to the values being silently
dropped. This should not be used unless you are certain of correctness. Defaults to false .
Works as buffer.writeUInt8 , except value is written out as a two's complement signed integer into buffer
buf.writeInt16LE(value, offset, [noAssert])
buf.writeInt16BE(value, offset, [noAssert])
Writes value to the buffer at the specified offset with specified endian format. Note, value must be a valid
signed 16 bit integer.
Set noAssert to true to skip validation of value and offset . This means that value may be too large for
the specific function and offset may be beyond the end of the buffer leading to the values being silently
dropped. This should not be used unless you are certain of correctness. Defaults to false .
7/23/2019 Node Js Manual Esp
42/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 42/
valueNumber
offsetNumbernoAssertBoolean, Optional, Default: false
valueNumber
offsetNumber
noAssertBoolean, Optional, Default: false
var buf = new Buffer(4);
buf.writeFloatBE(0xcafebabe, 0);
console.log(buf);
buf.writeFloatLE(0xcafebabe, 0);
console.log(buf);
//
//
Works as buffer.writeUInt16* , except value is written out as a two's complement signed integer into
buffer .
buf.writeInt32LE(value, offset, [noAssert])
buf.writeInt32BE(value, offset, [noAssert])
Writes value to the buffer at the specified offset with specified endian format. Note, value must be a valid
signed 32 bit integer.
Set noAssert to true to skip validation of value and offset . This means that value may be too large for
the specific function and offset may be beyond the end of the buffer leading to the values being silently
dropped. This should not be used unless you are certain of correctness. Defaults to false .
Works as buffer.writeUInt32* , except value is written out as a two's complement signed integer into
buffer .
buf.writeFloatLE(value, offset, [noAssert])
buf.writeFloatBE(value, offset, [noAssert])
Writes value to the buffer at the specified offset with specified endian format. Note, value must be a valid 3
bit float.
Set noAssert to true to skip validation of value and offset . This means that value may be too large for
the specific function and offset may be beyond the end of the buffer leading to the values being silently
dropped. This should not be used unless you are certain of correctness. Defaults to false .
Example:
buf.writeDoubleLE(value, offset, [noAssert])
buf.writeDoubleBE(value, offset, [noAssert])
7/23/2019 Node Js Manual Esp
43/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 43/
valueNumber
offsetNumber
noAssertBoolean, Optional, Default: false
var buf = new Buffer(8);
buf.writeDoubleBE(0xdeadbeefcafebabe, 0);
console.log(buf);
buf.writeDoubleLE(0xdeadbeefcafebabe, 0);
console.log(buf);
//
//
value
offsetNumber, Optional
endNumber, Optional
var b = new Buffer(50);
b.fill("h");
Number, Default: 50
Writes value to the buffer at the specified offset with specified endian format. Note, value must be a valid 6
bit double.
Set noAssert to true to skip validation of value and offset . This means that value may be too large for
the specific function and offset may be beyond the end of the buffer leading to the values being silently
dropped. This should not be used unless you are certain of correctness. Defaults to false .
Example:
buf.fill(value, [offset], [end])
Fills the buffer with the specified value. If the offset (defaults to 0 ) and end (defaults to buffer.length )
are not given it will fill the entire buffer.
buffer.INSPECT_MAX_BYTES
How many bytes will be returned when buffer.inspect() is called. This can be overridden by user modules
Note that this is a property on the buffer module returned by require('buffer') , not on the Buffer global, o
a buffer instance.
Class: SlowBuffer
This class is primarily for internal use. JavaScript programs should use Buffer instead of using SlowBuffer.
In order to avoid the overhead of allocating many C++ Buffer objects for small blocks of memory in the lifetime
of a server, Node allocates memory in 8Kb (8192 byte) chunks. If a buffer is smaller than this size, then it will b
backed by a parent SlowBuffer object. If it is larger than this, then Node will allocate a SlowBuffer slab for it
directly.
7/23/2019 Node Js Manual Esp
44/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 44/
Streams
Un Stream es un interfaz abstracto implementado por varios objetos en Node. Por ejemplo una peticin a un
servidor HTTP es un Stream, como un stdout. Los Streams son legibles, escribibles o ambos. Todos los stream
son instancias de EventEmitter .
Readable Stream
A Readable Stream has the following methods, members, and events.
Event: 'data'
function (data) { }
The 'data' event emits either a Buffer (by default) or a string if setEncoding() was used.
Event: 'end'
function () { }
Emitted when the stream has received an EOF (FIN in TCP terminology). Indicates that no more 'data' even
will happen. If the stream is also writable, it may be possible to continue writing.
Event: 'error'
function (exception) { }
Emitted if there was an error receiving data.
Event: 'close'
function () { }
Emitted when the underlying file descriptor has been closed. Not all streams will emit this. (For example, an
incoming HTTP request will not emit 'close' .)
Event: 'fd'
function (fd) { }
Emitted when a file descriptor is received on the stream. Only UNIX streams support this functionality; all othe
will simply never emit this event.
stream.readable
A boolean that is true by default, but turns false after an 'error' occurred, the stream came to an 'end'
or destroy() was called.
7/23/2019 Node Js Manual Esp
45/126
15/8/2015 Acerca de esta documentacin Node.js v0.6.19 Manual & Documentacin
http://nodejs-es.github.io/api/all.html 45/
process.stdin.resume();
process.stdin.pipe(process.stdout);
process.stdin.resume();
process.stdin.pipe(process.stdout, { end: false });
process.stdin.on("end", function() {
process.stdout.write("Goodbye\n");
});
stream.setEncoding(encoding)
Makes the data event emit a string instead of a Buffer . encoding can be 'utf8' , 'ascii' , or 'base64' .
stream.pause()
Pauses the incoming 'data' events.
stream.resume()
Resumes the incoming 'data' events after a pause() .
stream.destroy()
Closes the underlying file descriptor. Stream will not emit any more events.
stream.destroySoon()
After the write queue is drained, close the file descriptor.
stream.pipe(destination, [options])
This is a Stream.prototype method available on all Stream s.
Connects this read stream to destination WriteStream. Incoming data on this stream gets written to
destination . The destination and source streams are kept i