nodejs学习笔记(基于v7.4.0)

nodejs学习笔记

一、buffer:

全局对象(单例   Buffer.from   Buffer.alloc   Buffer.allocUnsafe )

编码类型 描述
ascii 仅仅用于7位ascall数据编码,速度快,如果设置了将会剥离高位
utf8 多字节的编码的Unicode字符,网页文档大部分默认都为它。
utf16le 小端编码的Unicode字符,2或者4个字节
ucs2 utf16le的别名
base64 Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一
latin1 将Buffer编码为一个字节的编码字符串的一种方法,和binary相同
binary latin1的别名
hex 将每个字节编码为两个十六进制的字符
方法参数 描述 注意事项
Buffer.from(array)
array普通数组

返回包含所提供的八位字节的副本的新缓冲区

注意数组内的必须是数字,如果是字符串,则会返回一个等同于数组长度的初始化为0的buffer(见例1)
Buffer.from(arrayBuffer[, byteOffset [, length]])
1、arrayBuffer:继承TypedArry或者ArrayBuffer的.buffer

2、byteOffset:开始copy的游标,默认从0开始

3、length:要拷贝的长度,默认arrayBuffer.length - byteOffset

返回一个新的Buffer,它与给定的ArrayBuffer共享相同的分配的内存

注意:共享内存,就像js的浅复制一样,共享内存,一个被改动都会改动(见例2)
Buffer.from(buffer) 
buffer:用于从中复制数据的现有缓冲区

返回一个包含给定Buffer的内容的副本的新Buffer

注意:各自拥有不同的内存,(见例3)
Buffer.from(string[, encoding])
string:待编码的字符串

encoding: 编码格式

返回一个包含所提供字符串副本的新缓冲区

(见例4)

例1:

例2:

例3

例4:

方法参数 描述 注意事项
Buffer.alloc(size[, fill[, encoding]])
size: 新buffer的大小

fill:初始化的数据

encoding:编码格式

返回新的buffer


和allocUnsafe对比,比较慢但是能确保不会带脏数据或者为初始化的数据

(见例5)

Buffer.allocUnsafe(size)
size: 新buffer的大小

返回一个新的Buffer,它与给定的ArrayBuffer共享相同的分配的内存


和alloc对比,比较快,但是会带有脏数据,不会进行初始化

(见例5)

事例5:

时间: 2024-12-26 10:12:05

nodejs学习笔记(基于v7.4.0)的相关文章

nodejs学习笔记_nodejs和PHP在基础架构上的差别--共享状态的并发

绝大多数对于Node.js的讨论都把关注点放在了处理高并发能力上,做开发的时候一定要明确node内部做出的权衡,以及node应用性能好的原因. node 为javascript引入了一个复杂的概念,:共享状态的并发. node採用一个长期执行的进程 而php在apache中会产生多个进程 例如以下图所看到的: 代码验证: PHP: <?php $i = 0; $i++; echo $i nodejs: var http = require('http'); var i=0; http.creat

Nodejs学习笔记(八)--- Node.js + Express 实现上传文件功能(felixge/node-formidable)

目录 前言 formidable简介 创建项目并安装formidable 实现上传功能 运行结果 部分疑惑解析 写在之后 前言 前面讲了一个构建网站的示例,这次在此基础上再说说web的常规功能----文件上传,示例以一个上传图片的功能为例子 上传功能命名用formidable实现,示例很简单! PS:最近比较忙,距上一次更新已经比较久了^_^! formidable简介 nodejs原生实现上传还是比较麻烦,有兴趣的自已去参考一下网上有网友写的代码 这里选择了formidable,也是githu

NodeJS学习笔记(一)——搭建开发框架Express,实现Web网站登录验证

JS是脚本语言,脚本语言都需要一个解析器才能运行.对于写在HTML页面里的JS,浏览器充当了解析器的角色.而对于需要独立运行的JS,NodeJS就是一个解析器.每一种解析器都是一个运行环境,不但允许JS定义各种数据结构,进行各种计算,还允许JS使用运行环境提供的内置对象和方法做一些事情.例如运行在浏览器中的JS的用途是操作DOM,浏览器就提供了document之类的内置对象.而运行在NodeJS中的JS的用途是操作磁盘文件或搭建HTTP服务器,NodeJS就相应提供了fs.http等内置对象.E

nodejs学习笔记_nodejs和PHP在基础架构上的区别--共享状态的并发

绝大多数对于Node.js的讨论都把关注点放在了处理高并发能力上,做开发的时候一定要明白node内部做出的权衡,以及node应用性能好的原因. node 为javascript引入了一个复杂的概念,:共享状态的并发. node采用一个长期运行的进程 而php在apache中会产生多个进程 如下图所示: 代码验证: PHP: <?php $i = 0; $i++; echo $i nodejs: var http = require('http'); var i=0; http.createSer

nodejs学习笔记之安装、入门

由于项目需要,最近开始学习nodejs.在学习过程中,记录一些必要的操作和应该注意的点. 首先是如何安装nodejs环境?(我用的是windows 7环境,所以主要是windows 7的例子.如果想看linux下的安装可以参考http://www.cnblogs.com/meteoric_cry/archive/2013/01/04/2844481.html) 1. nodejs提供了一些安装程序,可以去官网(http://nodejs.org/download/)按照自己的机器进行下载,下载完

Nodejs学习笔记(三)——一张图看懂Nodejs建站

前言:一条线,竖着放,如果做不到精进至深,那就旋转90°,至少也图个幅度宽广. 通俗解释上面的胡言乱语:还没学会爬,就学起走了?! 继上篇<Nodejs学习笔记(二)——Eclipse中运行调试Nodejs>之后,代码编写环境就从Sublime转战到Eclipse下,感觉顺手多了.于是就跟着Scott老师学起了Nodejs建站的课程(推荐大家点进去看看),踏上了未爬先走的路子. 作为一个白里透白的小白来说,今天主要记录下如何用Nodejs搭建一个小小的网站,以及自己对于这种Nodejs建站的运

【Cocos2D-X 学习笔记】Cocos2D-x 3.0+VS开发环境搭建[使用Python]

上一节讲了如何用VS自带的项目管理器创建项目,该方法只适用于cocos2d-x 2.0版本,而cocos2d-x 3.0较之前版本在命名等方面有了较大更新,而cocos2d-x3.0不再支持用VS项目管理器自建项目,而是用Python脚本创建项目. 为什么做这种改变?经过上一节讨论可以发现,使用VS创建项目有一个缺陷:新建的项目必须在cocos2d-x的解决方案中,这样会导致自己的项目和Template项目混淆:如果想单独创建一个项目的话,又需要把cocos2d-x包中的cocos2d文件整个拷

一起学ASP.NET Core 2.0学习笔记(二): ef core2.0 及mysql provider 、Fluent API相关配置及迁移

不得不说微软的技术迭代还是很快的,上了微软的船就得跟着她走下去,前文一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx.supervisor.mysql环境搭建搭建好了.net core linux的相关环境,今天就来说说ef core相关的配置及迁移: 简介: Entity Framework(以下简称EF) 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案,EF Core是Entity

nodejs学习笔记---1

1.初识NodeJs 什么时候NodeJS 能做什么 NodeJS环境搭建和运行 2.webstorm的使用 工程创建 webstorm的NodeJs配置 NodeJs代码提示 3.Node和JS的异同 基本语法 内置对象 全局对象 作用域 4.模块的使用 全局作用域 global对象 模块 模块概念 模块作用域 模块对象module 5.模块加载机制 模块的加载 require() 模块路径处理 模块文件查找机制 6.模块-module和exports 模块的创建 module对象 modul