Node.js学习笔记——Node.js的基础知识

Node.js学习笔记——Node.js的基础知识

    • require函数相关
    • require.resolve函数查询完整模块名
    • require.cache对象
    • __filename & __dirname

require函数相关

  • 在node.js中,所有脚本文件都是一个模块文件。
  • 如果某文件在命令行窗口中通过“node”命令被直接运行的,因此在node.js中将该模块文件所定义的模块称为应用程序的主模块
  • 定义了一个require.main变量,用于检测一个模块是否为应用程序中的主模块。
if(module===require.main){
	console.log('This is the main module of application+
	')
}
  • 在加载模块文件时,将运行该模块文件中的每一行代码
//output.js.
var testing='this is a var from index.js';
exports.testing=testing;
console.log('you have got testing');
}
//main.js
var king=require('./output.js');

在命令行窗口中输入"node main.js"按下回车键,命令行窗口中也将显示output模块中的testing变量值的字符串,因为在加载模块时将运行模块文件中的每一行代码。(若在main.js有两个变量同时引用output模块,也只是会输出一次you have got testing,不会重复输出)

PS C:\Users\kingsley\Desktop\新建文件夹>  node main.js
you have got testing
PS C:\Users\kingsley\Desktop\新建文件夹>

require.resolve函数查询完整模块名

  • 查询时不会加载该模块
var king=require.resolve('./index.js');
console.log(king);
//命令行
C:\Users\kingsley\Desktop\新建文件夹> node hello.js
C:\Users\kingsley\Desktop\新建文件夹\index.js
PS C:\Users\kingsley\Desktop\新建文件夹>

require.cache对象

  • 该对象代表缓存了所有已经被加载模块的缓存区。
  • 该对象具有一个“键名/键值”结构,键名为每个模块的完整文件名,键值为各模块对象,代码如下:
require.cache["模块文件名"]
  • 使用以下代码查看缓存区中的test.js模块对象。
console.log(require.cache[require.resolve('./test.js')]);
  • 使用以下代码删除缓存区中的test.js模块对象。
delete require.cache[require.resolve('./test.js')];
  • 删除了以后重新加载模块时将重新运行一次该模块中的代码。

__filename & __dirname

console.log(__filename);
console.log(__dirname);

命令行:

C:\Users\kingsley\Desktop\新建文件夹> node hello.js
C:\Users\kingsley\Desktop\新建文件夹\hello.js
C:\Users\kingsley\Desktop\新建文件夹
PS C:\Users\kingsley\Desktop\新建文件夹>

你可能感兴趣的:(Node.js学习笔记——Node.js的基础知识)