node.js - 开始
本系列作为在重新学习node.js的一个记录,可能会不断修改。
node.js的介绍
随便google或者百度一下都可以找到,可以帮助我们对node有一个整体的印象
模块化
node.js中将js代码合理得拆分成多个js文件,每个文件就是一个模块,文件路径就是模块名
编写每个模块时都有这几个预定义好的变量可供使用 require、exports、module
- require
导入模块
var a = require('./foo.js');
导入json数据
var data = require('./data.json');
- exports
代表当前模块的导出对象
// foo.js var a = {a: 'aa'}; exports.hello = a; // main.js var income = require('./foo.js'); console.log(income); // {hello: {a: 'aa'}}
- module
包含当前模块的必要信息,形如:
{ id: 'D:\\test\\nodejs\\1.js', exports: {}, parent: Module { id: '.', exports: {}, parent: null, filename: 'D:\\test\\nodejs\\main.js', loaded: false, children: [ [Circular] ], paths: [ 'D:\\test\\nodejs\\node_modules', 'D:\\test\\node_modules', 'D:\\node_modules' ] }, filename: 'D:\\test\\nodejs\\1.js', loaded: false, children: [], paths: [ 'D:\\test\\nodejs\\node_modules', 'D:\\test\\node_modules', 'D:\\node_modules' ] }
最常用的用法是替换导出对象
var a = {a: 'aa'}; module.exports = a;
模块初始化
一个模块中的JS代码仅在模块第一次被使用时执行一次,并在执行过程中初始化模块的导出对象。之后,缓存起来的导出对象被重复利用。
// 1.js let i = 0; module.exports = function() { return ++i; }; // main.js const counter1 = require('./1'); const counter2 = require('./1'); console.log(counter1()); console.log(counter1()); console.log(counter2()); // 运行结果是打印1、2、3可以看出1.js中的代码并没有在require2次重新初始化
小结
-
NodeJS是一个JS脚本解析器,任何操作系统下安装NodeJS本质上做的事情都是把NodeJS执行程序复制到一个目录,然后保证这个目录在系统PATH环境变量下,以便终端下可以使用
node命令。 -
终端下直接输入
node命令可进入命令交互模式,很适合用来测试一些JS代码片段,比如正则表达式。 -
NodeJS使用CMD模块系统,主模块作为程序入口点,所有模块在执行过程中只初始化一次。
浙公网安备 33010602011771号