日期: 2022-09-21 03:54:56 浏览数:3

上往建站提供服务器空间服务商,百度快照排名,网站托管,百度推广运营,致力于设计外包服务与源代码定制开发,360推广,搜狗推广,增加网站的能见度及访问量提升网络营销的效果,主营:网站公司,百度推广公司电话,官网搭建服务,网站服务企业排名,服务器空间,英文域名等业务,专业团队服务,效果好。
邵阳企业网站设计 - 邵阳高端网站定制 - 邵阳品牌网站搭建 - 上往建站

// 通过 http 模块的 STATUS_CODES 方法,直接获取一个包含状态码和状态信息的对象。
// 获取对应状态码 418 的状态信息
res.writeHead(418, http.STATUS_CODES["418"], {
'Content-Type': 'text/html'
});
// 为 http.ServerResponse 对象绑定对 finish 事件的监听
res.addListener("finish", () => {
console.log("server response is finished");
});
res.end("<h1>Hello World</h1>");}).listen(8080, () => {
console.log("http server starts at 8080 port");});// <http.Server> Extends: <net.Server>// <net.Server> Extends: <EventEmitter>// 既然最终 <http.Server> 构造函数继承自 <EventEmitter> 构造函数,那么根据原型链的原理,// 它也可以调用 <EventEmitter> 的 emitter.on(eventName, listener) 方法。server.on("connection", () => {
console.log("a client has connected to the server!");});/**
* 用户打开页面8080端口后,Node服务器控制台输出:
* http server starts at 8080 port
* a client has connected to the server!
* a client has connected to the server!
* server response is finished
* server response is finished
*/以上代码中:
res.addListener("finish", () => {
console.log("server response is finished");
});和
server.on("connection", () => {
console.log("a client has connected to the server!");});底层实现都是 event 模块来实现。可以通过查看 NodeJS 文档来看继承关系。
Node.js Buffer(缓冲区)
JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。
但在处理像TCP流或文件流时,必须使用到二进制数据。因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。
在 Node.js 中,Buffer 类是随 Node 内核一起发布的核心库。Buffer 库为 Node.js 带来了一种存储原始数据的方法,可以让 Node.js 处理二进制数据,每当需要在 Node.js 中处理I/O操作中移动的数据时,就有可能使用 Buffer 库。原始数据存储在 Buffer 类的实例中。一个 Buffer 类似于一个整数数组,但它对应于 V8 堆内存之外的一块原始内存。
在v6.0之前创建Buffer对象直接使用new Buffer()构造函数来创建对象实例,但是Buffer对内存的权限操作相比很大,可以直接捕获一些敏感信息,所以在v6.0以后,官方文档里面建议使用 Buffer.from() 接口去创建Buffer对象。
Buffer 与字符编码
Buffer 实例一般用于表示编码字符的序列,比如 UTF-8 、 UCS2 、 Base64 、或十六进制编码的数据。 通过使用显式的字符编码,就可以在 Buffer 实例与普通的 JavaScript 字符串之间进行相互转换。
const buf = Buffer.from('runoob', 'ascii');
// 输出 72756e6f6f62
console.log(buf.toString('hex'));
// 输出 cnVub29i
console.log(buf.toString('base64'));
Node.js 目前支持的字符编码包括:
ascii - 仅支持 7 位 ASCII 数据。如果设置去掉高位的话,这种编码是非常快的。
utf8 - 多字节编码的 Unicode 字符。许多网页和其他文档格式都使用 UTF-8 。
utf16le - 2 或 4 个字节,小字节序编码的 Unicode 字符。支持代理对(U+10000 至 U+10FFFF)。
ucs2 - utf16le 的别名。
base64 - Base64 编码。
latin1 - 一种把 Buffer 编码成一字节编码的字符串的方式。
binary - latin1 的别名。
hex - 将每个字节编码为两个十六进制字符。
创建 Buffer 类
Buffer 提供了以下 API 来创建 Buffer 类:
Buffer.alloc(size[, fill[, encoding]]): 返回一个指定大小
邵阳企业网站设计 - 邵阳高端网站定制 - 邵阳品牌网站搭建 - 上往建站
上往建站提供搭建网站,域名注册,官网备案服务,网店详情页设计,企业网店,专业网络店铺管理运营全托管公司咨询电话,服务器空间,微信公众号托管,网页美工排版,致力于域名申请,竞价托管,软文推广,全网营销,提供标准级专业技术保障,了却后顾之忧,主营:虚拟主机,网站推广,百度竞价托管,网站建设,上网建站推广服务,网络公司有哪些等业务,专业团队服务,效果好。
服务热线:400-111-6878 手机微信同号:18118153152(各城市商务人员可上门服务)