搜索
写经验 领红包
 > 美容

ode知识体系之全局变量是什么(ode-ed全局变量)

导语:Node知识体系之全局变量

接下来几个星期,小邹将会分模块的把Node相关的知识体系都一一介绍一下,今天我们主要来介绍下Node体系中的全局变量。

require(id)

内建模块直接从内存加载文件模块通过文件查找定位到文件包通过 package.json 里面的 main 字段查找入口文件

module.exports

// 通过如下模块包装得到(funciton (exports, require, module, __filename, __dirname) { // 包装头}); // 包装尾

JSON 文件

通过 fs.readFileSync() 加载通过 JSON.parse() 解析

加载大文件

require 成功后会缓存文件大量使用会导致大量数据驻留在内存中,导致 GC 频分和内存泄露

module.exports 和 exports

执行时

(funciton(exports, require, module, __filename, __dirname) { // 包装头 console.log('hello world!') // 原始文件}); // 包装尾

exports

exports 是 module 的属性,默认情况是空对象require 一个模块实际得到的是该模块的 exports 属性exports.xxx 导出具有多个属性的对象module.exports = xxx 导出一个对象

使用

// module-2.jsexports.method = function() { return 'Hello';};exports.method2 = function() { return 'Hello again';};// module-1.jsconst module2 = require('./module-2');console.log(module2.method()); // Helloconsole.log(module2.method2()); // Hello again

路径变量

console.log('__dirname:', __dirname); // 文件夹console.log('__filename:', __filename); // 文件path.join(__dirname, 'views', 'view.html');// 如果不希望自己手动处理 / 的问题,使用 path.join

console

process

查看 PATH

nodeconsole.log(process.env.PATH.split(':').join('\n'));

设置 PATH

process.env.PATH += ':/a_new_path_to_executables';

获取信息

// 获取平台信息process.arch // x64process.platform // darwin// 获取内存使用情况process.memoryUsage();// 获取命令行参数process.argv

nextTick

process.nextTick 方法允许你把一个回调放在下一次时间轮询队列的头上,这意味着可以用来延迟执行,结果是比 setTimeout 更有效率。

const EventEmitter = require('events').EventEmitter;function complexOperations() { const events = new EventEmitter(); process.nextTick(function () { events.emit('success'); }); return events;}complexOperations().on('success', function () { console.log('success!');});

免责声明:本站部份内容由优秀作者和原创用户编辑投稿,本站仅提供存储服务,不拥有所有权,不承担法律责任。若涉嫌侵权/违法的,请反馈,一经查实立刻删除内容。本文内容由快快网络小余创作整理编辑!