1 全局对象global
全局变量都是全局对象global
的属性
process
它是用于描述和控制当前Node.js进程状态的对象。// 示例用法: // process属性 console.log('pid', process.pid) // 打印进程号 console.log('version', process.version) // 打印node.js版本 console.log('env', process.env) // 打印环境变量 // process方法 process.stdout.write('hello world') // 输出信息 process.exit() // 退出进程
更多API参考Node.js官方文档之process
console
用户向控制台输出信息。console.log('hello world'); // 打印字符并换行 console.error('error'); // 输出错误消息 console.warn('warning'); // 输出警告消息。控制台出现有黄色的惊叹号。
2 常用工具
util
util.inherits()
对象间原型继承util.inspect()
将对象格式化为字符串util.isArray()
判断是否为数组util.isRegExp()
判断是否为正则表达式util.isDate()
判断是否为日期类型
3 事件模块events
events
模块对外只提供了一个EventEmitter
对象。EventEmitter
对象是对事件触发与事件监听功能的封装。当EventEmitter对象触发一个事件时,所有绑定在该事件上的函数都被同步调用。
// 引入 events 模块
var events = require('events');
// 创建 eventEmitter 对象
var eventEmitter = new events.EventEmitter();
EventEmitter对象的实例方法:
方法 | 描述 |
---|---|
on(event, listener) | 为事件event注册一个监听器 |
once(event, listener) | 为指定事件注册一个单次监听器, |
emit(event, [arg1], [arg2], […]) | 触发event事件 |
addListener(event, listener) | 为指定事件添加一个监听器到监听器数组的尾部。 |
removeListener(event, listener) | 移除指定事件的某个监听器,监听器必须是该事件已经注册过的监听器。 |
removeAllListeners([event]) | 移除所有事件的所有监听器, 如果指定事件,则移除指定事件的所有监听器。 |
listeners(event) | 返回指定事件的监听器数组。 |
EventEmitter定义了一个特殊的事件error
,当error
被触发时,如果没有相应的监听器,Node.js会把它当做异常,退出程序并输出错误信息。
4 文件系统fs
模块
const fs = require('fs');
const path = require('path');
// 异步读取文件
// 文件路径可以为相对路径或绝对路径
fs.readFile(path.join(__dirname, "./tes.txt"), function(err,data){
if(err) {
return console.error('error: ' + err)
}
console.log('异步读取:'+data.toString())
})
/**
* 异步写入文件
*/
fs.writeFile('./test.txt', content, function (err) {
if (err) {
return console.log(err, 'err')
}
console.log('文件写入完成')
})
/**
* 复制文件
*/
const readerStream = fs.createReadStream('test.txt');
const writeStream = fs.createWriteStream('copyTest.txt');
readerStream.pipe(writeStream);
console.log('文件复制成功');
更多API参考Node.js官方文档之文件系统
5 http
模块
http 模块主要用于搭建 HTTP 服务端和客户端。
const http = require('http');
const url = require('url');
// 创建服务器
http.createServer( function (req, res) {
// 解析请求,包括文件名
var pathname = url.parse(req.url).pathname;
// 输出请求的文件名
console.log("Request for " + pathname + " received.");
res.writeHead(200, {'Content-Type': 'text/html'});
// 完成响应
res.end("hello world!");
}).listen(8080);
6 path
模块
用于处理文件的路径。
join()
连接路径resolve()
将相对路径转换为绝对路径parse()
解析路径,将URL字符串转换成对象
参考资料
- BYVoid. Node.js开发指南[M]. 人民邮电出版社, 2012.
- 天津滨海迅腾科技集团有限公司. Node.js项目实战[M]. 1. 天津:南开大学出版社, 2018.
- Node.js教程-RUNOOB.COM
- Node.js官方文档