Node Js Manual Esp

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