前言 Node.js is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web apps, command line tools and scripts.(官网 )
在Nodejs环境中运行JS代码
<file>.js:需要运行的JS文件
通用JS代码 传送门
全局变量
控制台对象 控制台输出
清空控制台
输出函数调用栈
进程对象 获取命令行参数 1 var resultList = process.argv ;
执行函数 定时器 1 setTimeout (() => {}, 1000 );
计时器 1 setInterval (() => {}, 1000 );
立即执行
下一次Tick执行 1 process.nextTick (() => {});
Nodejs的模块
Nodejs中每个JS文件就是一个模块,每个模块的module对象指向这个模块
Nodejs的模块化是通过CommonJS规范 实现的,通过module.exports导出,通过require()导入
Nodejs中默认module.exports的指向与exports的指向是同一个空对象,但最终导出模块是由module.exports决定的
所以虽然在module.exports的指向与exports的指向均未改变之前,用哪一个都可以,但如果module.exports的指向或exports的指向改变了之后,实际上是以module.exports的指向为准
在使用require()进行导入模块操作时,会自动执行一次模块中的所有代码,然后会将模块进行缓存,如果之后又导入了这个模块,则直接从缓存中获取模块,不再执行模块中的代码
定义模块 demo.js 1 2 3 4 5 6 7 8 9 10 const obj = {};const fn = function ( ) { ... } module .exports = { obj : obj, fn : fn, };
引入模块 main.js 1 2 3 4 5 const demo = require ("./demo.js" );console .log (demo.obj );demo.fn ();
引入模块时的查找规则 1 const xxx = require ("xxx" );
判断是否包含路径
如果只是字符串
匹配名称为xxx的内置模块
匹配路径为node_modules/xxx/index.js的文件
匹配上层路径../node_modules/xxx/index.js的文件,以此类推
找不到最终报错
如果包含路径,如以./或../开头
匹配文件名为xxx的文件
匹配文件名为xxx.js的文件
匹配文件名为xxx.json的文件
匹配文件名为xxx.node的文件
匹配路径为xxx/*.js的文件
匹配路径为xxx/*.json的文件
匹配路径为xxx/*.node的文件
找不到最终报错
Nodejs的包
Nodejs中封装了一个或多个模块的目录,被称为包,目录名即为包名
包的根目录下必须有一个package.json的文件
包名不能包含中文或空格,否则在创建package.json文件时会报错
Nodejs的内置模块 - http模块 完成 参考文献 哔哩哔哩——黑马程序员 哔哩哔哩——前端开发专业教程