模块化
- 在Node中,一个js文件就是一个模块。
- 模块化的好处:降低程序之间的耦合性、方便代码复用。
当Node在执行模块中的代码时
function (exports, require, module, __filename, __dirname) {...}
require()
在Node中,通过require()函数来引入外部的模块。
HelloNode.js
console.log('HelloNode')
module1.js
// 文件模块:自己创建的模块
var md = require('./HelloNode.js')
// 核心模块:由Node引擎提供的模块
var fs = require('fs')
console.log(fs)
exports()
在Node中,通过exports()向外部暴露属性和方法。
- exports()和module.exports()
通过exports只能通过.的方式来向外暴露内部变量,而module.exports既可以通过.的形式,也可以直接赋值
console.log('HelloNode')
// exports.x = 1
// exports.y = 2
// exports.fn = function() {}
module.exports = {
x: 1,
y: 2
}
global、__filename、__dirname
- 在Node中有一个全局变量,在全局中创建的变量(函数)会作为global的属性(方法)保存。(全局里没有arguments)
- 当前模块的完整路径
- 当前模块所在文件夹的完整路径
包(package)
单个文件算一个模块,文件放到文件夹算一个包
- 包结构
- package.json ——描述文件
- bin——可执行二进制文件
- lib——js代码
- doc——文档
- test——单元测试
- 包描述文件
它是一个json格式的文件,在它里面保存了包各种相关的信息。package.json是包的重要组成部分- name——包名
- version——版本
- dependencies——依赖
- main——包的主要的文件
- bin——可执行文件
npm(Node Package Manager)
- npm的常用指令
- npm -v ——【查看npm的版本】
- npm version ——【查看所有模块的版本】
- npm init ——【初始化项目(创建package.json)】
- npm i/install 包名 ——【安装指定的包】
- npm i/install 包名 --save ——【安装指定的包并添加依赖】
- npm i/install 包名 -g ——【全局安装(一般都是一些工具)】
- npm i/install ——【安装当前项目所依赖的包】
- npm s/search 包名 ——【搜索包】
- npm r/remove 包名 ——【删除一个包】
通过npm下载的包都会放到node_modules文件夹中