📜  Node.js NPM 数组缓冲区到字符串模块

📅  最后修改于: 2022-05-13 01:56:38.029000             🧑  作者: Mango

Node.js NPM 数组缓冲区到字符串模块

NPM(Node Package Manager) 是 Node.js 包的包管理器。有一个名为 arraybuffer-to-string 的 NPM 包用于解码实际字符串中的数组缓冲区。该包不仅将缓冲区转换为“utf8”字符串,而且还将缓冲区转换为多种形式,例如 base64 编码字符串,我们在许多上下文中使用的十六进制编码字符串。

安装命令:

npm install arraybuffer-to-string

将包导入本地文件的语法

const arrayBufferToString = require('arraybuffer-to-string')

将数组缓冲区转换为字符串的语法

arrayBufferToString(buffer, encodingType)

参数:它需要两个参数'buffer'和'encodingType',我们想要将arraybuffer转换为如下所示:

  • 缓冲区:它是我们要转换为实际文本的数组缓冲区。 node.js中有很多方法直接不返回字符串的实际内容,而是返回响应的缓冲形式。在这些情况下,我们使用这个包将缓冲区转换为字符串。
  • encodingType:可选参数,默认值为'utf8'。它表示我们要将缓冲区转换为的字符串的类型。可用的编码有 utf8、二进制、base64、hex、ascii、latin1、ucs2、utf16 等。

示例 1:此示例说明如何使用 'arraybuffer-to 字符串' 将数组缓冲区转换为 utf8字符串。

文件名 - index.js:此文件包含将 arraybuffer 转换为 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}`)
})


javascript
module.exports = ({errors}) => {
  return `


 

  
  

 

  
    
      
        
          
            
                           
                       
          
                       
        
      
    
  
    ` }


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}`)
})


javascript
module.exports = ({errors}) => {
  return `


 

  
  

 

  
    
      
        
          
            
                           
                       
          
                       
        
      
    
  
    ` }


filename-form.js:此文件包含呈现表单的逻辑。

javascript

module.exports = ({errors}) => {
  return `


 

  
  

 

  
    
      
        
          
            
                           
                       
          
                       
        
      
    
  
    ` }

输出:

提交输入字符串也将其从字符串转换为数组缓冲区到 utf8 编码的字符串

在命令提示符下打印响应

示例 2:此示例说明如何使用 'arraybuffer-to 字符串' 将数组缓冲区转换为 base64 编码字符串。

文件名 - index.js:此文件包含将 arraybuffer 转换为 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 :此文件包含呈现表单的逻辑。

javascript

module.exports = ({errors}) => {
  return `


 

  
  

 

  
    
      
        
          
            
                           
                       
          
                       
        
      
    
  
    ` }

输出:

提交输入字符串也将其从字符串转换为数组缓冲区到 base64 编码的字符串

在命令提示符下打印响应

注意:我们在 form.js 文件中使用了一些 Bulma 类来设计内容。