(function(exports, require, module, __filename, __dirname) {
// 模块的代码实际上在这里
});
复制代码
exportsnode
exports = global.exports = {} (注意这是个对象,实际对外导出的是global.exports)chrome
module数组
module = global.module = {} (注意这是个对象,实际对外导出的是global.module)bash
require()函数
引包ui
__filename编码
当前模块的文件名称---解析后的绝对路径。 在主程序中这不必定要跟命令行中使用的名称一致。spa
__dirname操作系统
当前模块的文件夹名称。等同于 __filename 的 path.dirname() 的值。命令行
经常使用属性
Events:uncaughtException
process.on('uncaughtException', (err) => {
fs.writeSync(1, `Caught exception: ${err}\n`);
});
setTimeout(() => {
console.log('This will still run.');
}, 500);
// 故意调用一个不存在的函数,应用会抛出未捕获的异常
nonexistentFunc();
console.log('This will not run.');
复制代码
argv
属性返回一个数组,这个数组包含了启动Node.js进程时的命令行参数。第一个元素为process.execPath。若是须要获取argv[0]的值请参见 process.argv0。第二个元素为当前执行的JavaScript文件路径。剩余的元素为其余命令行参数
```
例如,process-args.js文件有如下代码:
// print process.argv
process.argv.forEach((val, index) => {
console.log(`${index}: ${val}`);
});
运行如下命令,启动进程:
$ node process-args.js one two=three four
将输出:
0: /usr/local/bin/node
1: /Users/mjr/work/node/process-args.js
2: one
3: two=three
4: four
```
复制代码
```
例如:
$ node --harmony script.js --version
process.execArgv的结果:
['--harmony']
process.argv的结果:
['/usr/local/bin/node', 'script.js', '--version']
```
复制代码
一个包含用户环境信息的对象
方法返回 Node.js 进程当前工做的目录
inspect
// chrome打开 chrome://inspect/#devices
$ node --inspect process-args.js
// 进入程序开始时打断点
$ node --inspect-brk process-args.js
复制代码
process.nextTick 插入到当前队列队尾,setImmediate 插入到下个队列队首
例如:
setImmediate(() => console.log('setImmediate'))
setTimeout(() => console.log('setTimeout'), 0)
process.nextTick(() => console.log('nextTick'))
输出:
nextTick
setTimeout
setImmediate
复制代码
格式化路径
拼接路径,内部会调用normalize
获取一个目标文件的绝对路径
获取文件名(路径),不一样操做系统获取的不同
获取所在文件夹路径
获取文件的拓展名
解析一个路径,并返回一个包含这个路径信息的对象
把parse()返回的对象从新组合成字符串并返回这个字符串
// 建立一个长度为 十、且用 0 填充的 Buffer。
const buf1 = Buffer.alloc(10);
// 建立一个长度为 十、且用 0x1 填充的 Buffer。
const buf2 = Buffer.alloc(10, 1);
复制代码
// 建立一个长度为 十、且未初始化的 Buffer。
// 这个方法比调用 Buffer.alloc() 更快,
// 但返回的 Buffer 实例可能包含旧数据,
// 所以须要使用 fill() 或 write() 重写。
const buf3 = Buffer.allocUnsafe(10);
复制代码
// 建立一个包含 [0x1, 0x2, 0x3] 的 Buffer。
const buf4 = Buffer.from([1, 2, 3]);
// 建立一个包含 UTF-8 字节 [0x74, 0xc3, 0xa9, 0x73, 0x74] 的 Buffer。
const buf5 = Buffer.from('tést');
// 建立一个包含 Latin-1 字节 [0x74, 0xe9, 0x73, 0x74] 的 Buffer。
const buf6 = Buffer.from('tést', 'latin1');
复制代码
// 字符串的编码长度
Buffer.byteLength('test')
复制代码
isBuffer()
concat(list[, totalLength])
5
// 例子
const EventEmitter = require('events');
class MyEmitter extends EventEmitter {}
const myEmitter = new MyEmitter();
myEmitter.on('event', () => {
console.log('触发了一个事件!');
});
myEmitter.emit('event');
复制代码