Node.js API学习笔记(一)
此文章已经发表于本人博客。
Terminal(终端)
说起这个使用过linux系统的兄台一般都会知道的,本人理解:类似Putty这些ssh工具通过 软件来实现远程控制主机,对于我们使用者来说,它会显示信息并能接收信息并处理,这个东东就是终端。至于什么伪终端应该就是用软件实现使一套输入输出设备 可以支持多个软终端。
这里说下node.js中有关的终端模块3个,分别是:STDIO、TTY、REPL。
一、STDIO
如果我没理解错控制台应该是属于noddjs标准的输入输出,一般把信息输出到stdout或者是stderr。
二、TTY
这个tty好像就跟伪终端解析一样,现在还不明白,不过不是很主要听讲说是准备放弃。
三、REPL
这是一个交互式解释器,至于什么是交互性这不解释了。这个REPL为node运行的状态以及信息提供一种交互方式。比如我们在windows下命令行输入:
node
>consolg('hello world!');
这样就会打印出hello world字符。
四、利用控制台
上面使用console.log();语句打印信息,那么我们可以使用这个查看很多信息,比如变量的值、堆栈的信息以及断言。
console.log([data],[...]):第一个参数是字符串,可以带上像C语言一样的占位符,后面可选,本人网上查看了一些资料,占位符支持%s(字符串),%d(数字),%j(json)。例子如下:
//不带占位符以及参数,输出:hello world
console.log('hello world');
//带上占位符,不过不带参数。输出:hello
console.log('hello %s');
//带上占位符以及参数。输出:hello world
console.log('hello %s', 'world');
//输出:age is 30
console.log('age is %d',30);
//输出:json data:{'age':30}
console.log('json data:%j',{age:30});
//输出:{age:30}
console.log({age:30});
//时间标记,标识lable开始
console.time('lable');
//时间标记,标识lable结束。输出lable : 100ms(可以计算中间的处理时间)
console.timeEnd('lable');
//打印当前堆栈lable的信息。输出Trace : lable ----------------------
console.trace('lable');
//断言语法:console.assert(expression,[message])
//输出AssertionError : 异常咯
console.assert(false,'异常咯');
五、Buffer
这个Buffer的出现基本上说就是为了解决js本身对于二进制不友好的局面。大家都知道nodejs的存在依赖网络,对不同资源的请求以及响应甚至是文件都是用二进制出里的,使用inodejs专门提供这个机制来处理字节流。
目前本人收集了Buffer支持的编码有:'ascii':这个速度快;'utf8':支持Unicode字符;'base64':base64字符串编码; 'utf16le'、'ucs2'、 'hex'。
创建Buffer实例,目前知道的是有4种;
//第一种指定大小,这个大小是固定的不会因为write的写入而改变
var buf = new Buffer(8);
buf.write('luoliang');
console.log(buf);
//第二种:数组初始化。输出:<Buffer 01 03 fe ff 00>。可以看出是求256的余数,而且不是四舍五入完全是取整
var buf1 = new Buffer([1.2,3.7,254,255,256]);
console.log(buf1);
//第三种:字符串初始化并带编码,默认utf8
var buf2 = new Buffer('中国人');
//输出:中国人
console.log(buf2.toString());
//下面将会输出乱码
buf2 = new Buffer('中国人','ascii');
console.log(buf2.toString());
//下面将会输出: 9 e4b8ade59bbde4baba
var buf3 = new Buffer('中国人');
console.log(buf3.length);
console.log(buf3.toString('hex'));
//上面的不同编码对象的length是不同的,这个需要特别注意以下可以自己实验下 //还有一个创建Buffer对象的slice,不过这个我基本没用过,表示截取字符串创建buffer
var buf4 = new Buffer('中国人');
var buf5 = buf4.slice();
//输出:中国人
console.log(buf5.toString());
//输出:国
buf5 = buf4.slice(3,6);
这次的笔记先到这里,接下来继续!
Node.js API学习笔记(一)的更多相关文章
- Node.js API 学习笔记
常用 API 学习笔记 url 函数 url.parse: 解析 url 地址 url.resolve: 向 url 地址添加或替换字段 url.format: 生成 url 地址 querystri ...
- Node.js API学习笔记(二)
本文发表于本人博客. 上一节笔记说到创建Buffer实例,这节继续讲Buffer.本节讲解下Buffer的一些静态方法.写入以及读取方法. Buffer.isEncoding(编码)判断nodejs是 ...
- 《深入浅出Node.js》学习笔记(一)
看了朴灵前辈的node.js系列文章,很开阔视野,虽然能力有限还是有很多不懂,但是还是希望能写下笔记,初步对node.js有点了解. 一.概念 Node.js不是JS应用.而是JS运行平台 Node. ...
- node.js day01学习笔记:认识node.js
Node.js(JavaScript,everywhere) 1.Node.js 介绍 1.1. 为什么要学习Node.js 企业需求 + 具有服务端开发经验更好 + front-end + back ...
- Node.js入门学习笔记(一)
先来个最常见的"Hello World!". 打开你最喜欢的编辑器(我用的是Sublime Text),创建一个helloWorld.js的文件.我们要做的就是向stdout输出& ...
- node.js 基础学习笔记3 -http
http模块,其中封装了一个高效的HTTP服务器和一个建议的HTTP客户端 http.server是一个基于事件的HTTP服务器 http.request则是一个HTTP客户端工具,用户向服务器发送请 ...
- node.js入门学习笔记整理
(1)node Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境. Node与javaScript的区别在于,javaScript的顶层对象是window,而no ...
- Node.js入门学习笔记(三)
基于事件驱动的回调 这个问题不好回答,不过这是Node.js原生的工作方式.它是事件驱动的,这也是它为什么这么快的原因.你可以花一点时间阅读一下Felix Geisendörfer的大作 Unders ...
- node.js 基础学习笔记2
Module和Package是Node.js最重要的支柱. Node.j 提供require函数来调用其他模块,而且模块都是基于文件.模块和包区别是透明的,因此常常不作区分. 1.模块和文件一一对应. ...
随机推荐
- HDFS的HA机制
传统的HDFS机制如下图所示: 也就是存在一个NameNode,一个SecondaryNameNode,然后若干个DataNode.这样的机制虽然元数据的可靠性得到了保证(靠edits,fsimage ...
- ES博客链接
https://blog.csdn.net/laoyang360/article/details/78290484
- flask 中xx.init_app(app)方法
bootstrap = Bootstrap() mail = Mail() moment = Moment() db = SQLAlchemy() def create_app(config_name ...
- php 判断时间是否超过
$str="2014-10-11"; echo "".strtotime($str); echo "<br/>"; echo & ...
- Docker:通过Git部署
这是我翻译的国外博客,如需转载请注明出处和原文链接 我一直听说Docker是个很棒的新事物,但是我一直提不起兴趣,直到我遇到一个切实的问题: 如果通过Docker来部署 Scout ,这么做会轻松一些 ...
- HTML表单页面的运用
本章目标:掌握表单基本结构<form> 掌握各种表单元素 能理解post和get两种提交方式的区别 本章重点:掌握各种表单元素 本章难点:post和get两种提交方式的区别 一. H ...
- 2018 CCPC 桂林游记
TYPE: Onsite Contest NAME: 2018 - CCPC - Guilin PLAT: HUSTOJ TIME: 2018/10/28 09:00-14:00 CST LOCA: ...
- 【JavaEE】SSH+Spring Security整合及example
到前文为止,SSH的基本框架都已经搭建出来了,现在,在这基础上再加上权限控制,也就是Spring Security框架,和前文的顺序一样,先看看需要加哪些库. 1. pom.xml Spring Se ...
- 搭建一个SSM框架
刚好学完springMVC,mybatis简单的组合,总结一下 1.创建一个maven项目,引入jar包 一共这么多,除了oracle jar包是我手动添加到lib里,其他都是通过pom.xml引入的 ...
- IOS开发之 -- 线程初识
对于开发者来说,多线程永远有这一层神秘的色彩,似乎是一到迈步过去的坎,在同步.异步.串行.并行.死锁这几个名字当中,逐渐的放弃治疗,下面就多线程,谈一下自己的认识,理解的肯定不全面,只是一些简单的皮毛 ...