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