NPM (Node Package Manager) es un administrador de paquetes de paquetes Node.js. Hay un paquete NPM llamado arraybuffer-to-string que se usa para decodificar búferes de array en strings reales. El paquete no solo convierte el búfer en una string ‘utf8’, sino que también convierte el búfer en muchas formas, como una string codificada en base64, una string codificada en hexadecimal que usamos en muchos contextos.
Comando para instalar:
npm install arraybuffer-to-string
Sintaxis para importar el paquete en un archivo local
const arrayBufferToString = require('arraybuffer-to-string')
Sintaxis para convertir arraybuffer a string
arrayBufferToString(buffer, encodingType)
Parámetros: Se necesitan dos parámetros ‘buffer’ y ‘encodingType’ a los que queremos convertir el arraybuffer como se muestra a continuación:
- búfer: es el búfer de array que queremos convertir al texto real. Hay muchos métodos en node.js que directamente no devuelven el contenido real de la string, pero devuelven la forma de búfer de la respuesta. En esos contextos, usamos este paquete para convertir el búfer en una string.
- encodingType: es el parámetro opcional, el valor predeterminado es ‘utf8’. significa el tipo de string a la que queremos convertir el búfer. Las codificaciones disponibles son utf8, binary, base64, hex, ascii, latin1, ucs2, utf16 y muchas otras.
Ejemplo 1: Este ejemplo ilustra cómo usar ‘arraybuffer-to string’ para convertir de un búfer de array a una string utf8.
Nombre de archivo: index.js: este archivo contiene lógica para convertir arraybuffer en una string utf8.
javascript
const express = require('express') const bodyParser = require('body-parser') const arrayBufferToString =require('arraybuffer-to-string') const formTemplet = require('./form') const app = express() const port = process.env.PORT || 3000 // The body-parser middleware to parse form data app.use(bodyParser.urlencoded({extended : true})) // Get route to display HTML form app.get('/', (req, res) => { res.send(formTemplet({})) }) // Post route to handle form submission logic and app.post('/', (req, res) => { const {rawInput} = req.body // Creating buffer of string const buffer = Buffer.from(rawInput) // Buffer to array buffer var uint8 = new Uint8Array(buffer) // Converting from array buffer to actual utf8 string const utf8str = arrayBufferToString(uint8) // Printing on console console.log(`Original string : ${rawInput}\n`) console.log(`Array Buffer : ${uint8}\n`) console.log(`Decoded utf8 string : ${utf8str}\n`) }) // Server setup app.listen(port, () => { console.log(`Server start on port ${port}`) })
filename-form.js: este archivo contiene lógica para representar el formulario.
javascript
module.exports = ({errors}) => { return ` <!DOCTYPE html> <html> <head> <link rel='stylesheet' href= 'https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.0/css/bulma.min.css'> <style> div.columns { margin-top: 100px; } .button { margin-top: 10px } </style> </head> <body> <div class='container'> <div class='columns is-centered'> <div class='column is-5'> <form action='/' method='POST'> <div> <div> <label class='label' id='raw-input'>Raw Input </label> </div> <input class='input' type='text' name='rawInput' placeholder= 'Raw Input' for='raw-input'> </div> <div> <button class='button is-info'> Submit </button> </div> </form> </div> </div> </div> </body> </html> ` }
Producción:
Ejemplo 2: este ejemplo ilustra cómo usar ‘arraybuffer-to string’ para convertir de un búfer de array a una string codificada en base64.
Nombre de archivo: index.js: este archivo contiene lógica para convertir arraybuffer en una string codificada en base64.
javascript
const express = require('express') const bodyParser = require('body-parser') const arrayBufferToString =require('arraybuffer-to-string') const formTemplet = require('./form') const app = express() const port = process.env.PORT || 3000 // The body-parser middleware to parse form data app.use(bodyParser.urlencoded({extended : true})) // Get route to display HTML form app.get('/', (req, res) => { res.send(formTemplet({})) }) // Post route to handle form submission logic and app.post('/', (req, res) => { const {rawInput} = req.body // Creating buffer of string const buffer = Buffer.from(rawInput) // Buffer to array buffer var uint8 = new Uint8Array(buffer) // Converting from array buffer to actual // base64 encoded string const base64str = arrayBufferToString(uint8, 'base64') // Printing on console console.log(`Original string : ${rawInput}\n`) console.log(`Array Buffer : ${uint8}\n`) console.log(`Decoded utf8 string : ${base64str}\n`) }) // Server setup app.listen(port, () => { console.log(`Server start on port ${port}`) })
filename-form.js: este archivo contiene lógica para representar el formulario.
javascript
module.exports = ({errors}) => { return ` <!DOCTYPE html> <html> <head> <link rel='stylesheet' href= 'https://cdnjs.cloudflare.com/ajax/libs/bulma/0.9.0/css/bulma.min.css'> <style> div.columns { margin-top: 100px; } .button { margin-top: 10px } </style> </head> <body> <div class='container'> <div class='columns is-centered'> <div class='column is-5'> <form action='/' method='POST'> <div> <div> <label class='label' id= 'raw-input'>Raw Input </label> </div> <input class='input' type='text' name='rawInput' placeholder= 'Raw Input' for='raw-input'> </div> <div> <button class='button is-info'> Submit </button> </div> </form> </div> </div> </div> </body> </html> ` }
Producción:
Nota: Hemos utilizado algunas clases de Bulma en el archivo form.js para diseñar el contenido.
Publicación traducida automáticamente
Artículo escrito por hunter__js y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA