[NodeJS]常用模块简单讲解

一、全局对象

常用的全局对象 __dirname , __filename

__dirname 当前模块的目录名,等同于path.dirname(__filename)

__filename 当前模块的文件名,这是绝对路径。

二、模块讲解

1、OS模块

var os = require("os");
console.log("platform:", os.platform());
console.log("release:", os.release());
console.log("type:", os.type());
console.log("arch:", os.arch());

2. Process模块

Process对象是一个global全局对象,控制着当前NodeJS进程。由于它对于Node来说是始终可用的,因此可以省掉 require()

// process 是全局变量

// 当前进程的路径
console.log(process.cwd());
console.log(process.chdir("./filepath"));
process.stdout.write("hello world");
process.stderr.write("error");

// process.on() 监听事件
process.on("exit", function(code){
    console.log(code);
});
process.on("uncaughtException", function(err){
    console.log(err);
});

process.exit();

标准输入输出流

process.stdin    可读流

process.stdout  可写流

process.stderr

process.stdin.resume();
process.stdin.setEncoding("utf-8");
process.stdin.on("data", function(text){
    process.stdout.write(text.toUpperCase());
});

通过process对象来获取平台信息

process.arch 返回一个标识处理器架构的字符串  ‘arm‘ , ‘ia32‘, ‘x64‘

process.memoryUsage() 返回一个描述当前进程中内存使用情况的对象,具有4个属性: rss,  heapTotal, heapUsed, external

process.exit() 通过code状态码来决定程序是正常退出还是错误退出,当程序运行结束后,可以在终端中通过 echo $? 或者是 echo %errorlevel% 来获取状态码

process.pid  属性,返回进程的ID号

process对象实现了EventEmitter事件接口,所以可以对它添加监听器。

process.nextTick() 方法允许你将回调方法放在下一次的事件轮询队列的第一个。也就是说你可以将这个回调方法进行略微的延迟,这会比setTimeout()设定 0 毫秒的延迟要更有效率

3. console对象

格式占位符

%s        %d     %j

字符串    数字   JSON

打印对象时,如果没有使用%j, 那么系统会默认调用util.inspect方法进行对象格式化。

其实console.log console.error console.info console.warn这四个方法内部都是使用的process提供的stdin , stdout , stderr这三个对象来实现的。

可以在控制台通过 2> [fileName] 的方式将程序运行中的错误信息重定向到文件中,而不是在控制台中打印。这是因为在操作系统内部一共有三个标准流 stdin, stdout, stderr. 分别对应数字0, 1, 2

var name = ‘joyjoe‘;
var user = {name: ‘joyjoe‘};
console.log(‘Hello: ‘ , name);
console.log(‘Hello: %s‘ , name);
console.log(‘Hello: %j‘ , user);
console.err(‘Error, bad User: ‘ , user);
node console.js 2>error.log

console.trace()

通过console.time() 和 console.timeEnd() 两个方法来实现时间基准测试

4. Url模块

var url = require("url");
var baseURL = ‘http://nodejs.cn/api/stream.html#stream_readable_setencoding_encoding";

url.parse(baseURL);

var queryURL = "https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=node%20url&rsv_pq=c64714e100067de8&rsv_t=90619GdyWxr98m%2BjT1vFFgIj5qlVJWCLw215zhVVtnESrJE%2Fic4nboA4h%2Fo&rqlang=cn&rsv_enter=1&rsv_sug3=14&rsv_sug1=11&rsv_sug7=100";

url.parse(queryURL);
url.parse(queryURL, true);

var json = {
  protocol: ‘https:‘,
  slashes: true,
  auth: null,
  host: ‘www.baidu.com‘,
  port: null,
  hostname: ‘www.baidu.com‘,
  hash: null,
  search: ‘?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu‘,
  query: ‘ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu‘,
  pathname: ‘/a/b/s‘,
  path: ‘/a/b/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu‘,
  href: ‘https://www.baidu.com/a/b/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu‘
};

url.format(json);

5. Path模块

path.join()使用平台特定的分隔符把全部给定的path片段拼接起来并规范化生成的路径

path.dirname()返回一个path路径的目录名称

path.basename()返回一个path路径的最后一部分

path.extname()返回一个path路径的扩展名(从最后一个.号开始)

6. Timer模块

Timer模块暴露了全局API,用来在某个时间段调用调度函数。

Timeout类,内部创建,从setTimeout() 和 setInterval() 返回。可以传给 clearTimeout() 和 clearInterval() 来取消预定操作

当你预定一个Timeout定时器类时,只要定时器处于活动状态,NodeJS的事件循环机制就会继续运行。同时可以通过ref() 和 unref() 函数来控制定时器的默认行为。

timeout.ref() 调用时,只要定时器处于活动状态,就要求事件循环不要退出。默认情况下所有定时器都是活动状态。

timeout.unref() 调用时,处于活动状态的定时器,要求退出事件循环。也就是说当所有的定时器运行完毕(此时程序中已经没有处于活动状态的定时器类)后就会退出进程。

setImmediate(callback, ...args) 预定立即执行的callback 这些回调函数会在IO事件的回调函数执行完毕后立即执行。也就是说immediate 函数会在 interval 函数之前调用。

多次调用该方法,多个回调函数会按照它们被创建的顺序依次执行。每次事件循环迭代时都会处理整个回调队列。如果一个立即执行定时器创建后是被当前正在执行的回调给排入队列的,那么这个定时器会在下一次的事件循环迭代时才会被触发。 而 process.nextTick() 方法指定的回调函数,前面说, 回调方法放在下一次的事件轮询队列的第一个。 也可以理解为 在当前事件轮询结束后执行。

时间: 2024-11-07 18:45:17

[NodeJS]常用模块简单讲解的相关文章

NodeJS常用模块介绍

收集了NodeJS开发中常用的一些模块. MVC框架 - Express Express 是轻量灵活的Nodejs Web应用框架,它可以快速地搭建网站.Express框架建立在Nodejs内置的Http模块上,并对Http模块再包装,从而实际Web请求处理的 功能.它支持多种前端模板,如Jade, EJS等.它是T.J大神的作品,不过已经交由其它团队维护了. Koa是T.J大神的另外一个作品,号称下一 代NodeJS web框架.使用 koa 编写 web 应用,通过组合不同的 generat

NodeJS常用模块收集

收集了NodeJS开发中常用的一些模块. MVC框架 - Express Express 是轻量灵活的Nodejs Web应用框架,它可以快速地搭建网站.Express框架建立在Nodejs内置的Http模块上,并对Http模块再包装,从而实际Web请求处理的功能.它支持多种前端模板,如Jade, EJS等.它是T.J大神的作品,不过已经交由其它团队维护了. Koa是T.J大神的另外一个作品,号称下一代NodeJS web框架.使用 koa 编写 web 应用,通过组合不同的 generator

NodeJS 常用模块积累

cluster&forever cluster & forever 虽然 nodejs 原生已经提供了 cluster 模块,大部分情况下可以满足我们的基本需求,但这两个模块 cluster 和 forever 都提供了更强大的功能. cluster 及 forever 都能让你的 nodejs 应用的管理更加方便,比如启动.重启.停止你的应用. 他们也都可以保证应用的稳定性,如果你的 nodejs 程序存在错误而使进程关闭了,cluster 或 forever 都能自动重启他们,以保证

NodeJS常用模块

前100个依赖库里,underscore是属于语言基础类,express是服务器框架,有5.6个测试框架.以及5.6个递归遍历目录树的工具类.3个左右的命令行解析工具类,3个主流数据库的链接client库,2个ws库,多个js/CSS前端处理工具链,3-4个promise库,多个模版库,多个jquery/cavans/dom模拟器以及解析器,一个静态分析器,两个验证库 总得来说,node.js的前100个流行模块应该就可以代表node.js解决问题的问题域 ===================

python之threading模块简单讲解和实例演示

import threading 在处理一些程序时为了节约时间,可以使用多线程的方式, 让其并发去执行,从而节约时间, (注意python其实是伪多线程,其实是以我们感觉不到的速度每行代码都按照相同时间执行) Lock 当多线程同时对一个变量进行修改操作的时候,那么可能会出现混乱, 因为其是并发(算是吧)而行, (所以当两个赋值时间相对接近时那么其容易出现混乱) 所以我们得创建锁, 让其上一个线程赋值结束, 下一个赋值再继续 threading.Lock() 创建锁 是可用的最低级的同步指令.

input和output常用模块的讲解和使用(logstash)

1 ELK 是一个实时分布式的日志分析平台ELK 是一整套的解决方案(E)lasticsearch -- 数据库(L)ogstash -- 收集日志.标准化的程序(K)ibana -- 图形的展示工具 2 数据批量导入-X 导入使用的方法 POST--data-binary 导入数据的格式@urfile 导入数据的文件名_bulk 导入关键字curl -X "POST" "http://192.168.1.13:9200/_bulk" --data-binary @

常用函数式接口与Stream API简单讲解

常用函数式接口与Stream API简单讲解 Stream简直不要太好使啊!!! 常用函数式接口 Supplier<T>,主要方法:T get(),这是一个生产者,可以提供一个T对象. Consumer<T>,主要方法:void accept(T),这是一个消费者,默认方法:andthen(),稍后执行. Predicate<T>,主要方法:boolean test(T t),这是一个判断者,默认方法:and():且,or():或,negate():非. Functio

mysql模块简单实用操作-----nodejs

1 //mysql模块简单实用操作 2 3 var mysql = require('mysql'); 4 5 mc = {}; 6 7 8 var dbconfig = { 9 host : 'xxxxxxxxxx', 10 user : 'xxx', 11 password : 'xxx', 12 database : 'xxxxx' 13 }; 14 15 16 17 mc.sqlExc = function (sql, next) { 18 var db = mysql.createCo

常用模块

1.import讲解#本质就是.py 文件,用来从逻辑上组织pyhton代码(变量.函数.类.逻辑,实现一个功能) 1.1.导入方法导入多个模块,以逗号隔开 例如 module模块: name = "kangkang" def fun(num): print("num",num) 1) import module print(module.name) #调用模块下的参数 module.fun(23) #调用模块下的方法 结果为: kangkang num 23 2)