包结构
包实际上是一个压缩文件,解压以后还原为目录,符合规范的目录应该包含如下文件:
-package.json 描述文件
-bin 可执行二进制文件
-lib js代码
-doc 文档
-test 单元测试
进程和线程
进程
-- 进程负责为程序的运行提供必备的环境
-- 进程相等于工厂中的车间
线程
-- 线程 计算机中的最小的计算单位, 线程负责执行进程中的程序
-- 线程相等于于工厂中的工人
命令行
DOS命令
dir 列出当前目录下的所有文件
cd 目录名 进入到指定的目录
md 目录名 创建一个文件夹
rd 目录名 删除一个文件夹
--环境变量
-当我们在命令行打开一个文件或者调用一个程序时,
系统会首先在当前目录寻找文件系统,找到则打开
没有找到则会依次到环境变量path的路径中寻找,直到找到为止
没有找到则报错
exports 和module.exports
-通过exports 只能使用.的方式来向外暴露内部变量
exports.xxx = xxx
-module.exports既可以通过.的形式,也可以直接赋值
module.exports.xxx = xxxx
module.exports = {}
node模块化讲解
在node中 通过require()函数引入外部的模块
require()函数可以传递一个文件的路径作为参数,node会自动根据该路径来引入外部模块 使用相对路径必须以.或者..开头
var md = require("./02-modue");
使用require() 引入模块以后,函数会返回一个对象,这个对象代表的就是引入的模块
使用require()引入外部模块时,使用的就是外部标识
我们可以通过模块标识来找到指定的模块
模块分为两大类
核心模块
-由node引擎提供的模块
-核心模块的标识就是,模块的名字
文件模块
- 由用户自己创建的模块
- 文件模式的标识就是文件的路径(绝对路径,相对路径
可以通过 exports 来向外部暴露变量和方法
需要将暴露给外部的变量或方法设置为exports的属性即可
在node中有一个全局对象, global它的作用和网页中的window类似
在全局中创建的变量会作为global的属性保存
在全局中创建的函数会作为global的方法保存
当node执行模块中的代码时,他会首先在代码的最顶部,添加如下代码
function(exports,require,module,filename,dirname){
在代码的最底部,添加如下代码
}
实际模块中的代码都是包装在一个函数中执行的,并且在函数执行时,同时传递进了五个实参
exports
-该对象用来将变量或函数暴露到外部
require
-函数,用来引入外部的模块
module
-module代表的是当前模块本身
-exports就是module的属性
-既可以使用 exports 导出, 可以使用module.exports
__filename
c:\Users\21886\Desktop\nodejs\01- modue.js
- 当前模块的完整路径
__diraname
c:\Users\21886\Desktop\nodejs
-当前模块所在文件夹的完整路径
arguments.callee
- 这个属性保存的是当前执行的函数对象