1.在node中有一个全局对象 global,它的作用和网页中window类似
在全局中创建的变量都会作为global的属性保存
在全局中创建的函数都会作为global的方法保存
当node在执行模块中的代码时,它会首先在代码的最顶部,添加如下代码
function (exports, require, module, __filename, __dirname) {
在代码的最底部,添加如下代码
}
实际上模块中的代码都是包装在一个函数中执行的,并且在函数执行时,同时传递进了5个实参
exports
- 该对象用来将变量或函数暴露到外部
require
- 函数,用来引入外部的模块
module
- module代表的是当前模块本身
- exports就是module的属性
- 既可以使用 exports 导出,也可以使用module.exports导出
__filename
C:\Users\lilichao\WebstormProjects\class0705\01.node\04.module.js
- 当前模块的完整路径
__dirname
C:\Users\lilichao\WebstormProjects\class0705\01.node
- 当前模块所在文件夹的完整路径
2.exports 和 module.exports
通过exports只能使用.的方式来向外暴露内部变量
exports.xxx = xxx
而module.exports既可以通过.的形式,也可以直接赋值
module.exports.xxx = xxxx
module.exports = {}
3.npm的命令
npm -v:查看npm的版本
npm version :查看所有模块的版本
npm search 包名: 搜索包
npm install /i 包名:安装这个包
npm remove/r 包名:删除包
npm install 包名 --save :安装包并添加到依赖中
npm install:json有依赖 就直接下载当前项目依赖的包
npm install 包名 -g:全局安装这个包(全局安装的包一般都是一些工具)
4.cnpm
美国npm服务器卡的话 可以去网上找淘宝npm镜像
添加链接描述
这样就保留了 npm 和 cnpm
5.
如果npm r math --save 删了math还能计算,就说明在这个路径上可能还有 。不要吃惊哦!
通过npm下载的包都放到node_modules文件夹中
我们通过npm下载的包,直接通过包名引入即可
node在使用模块名字来引入模块时,它会首先在当前目录的node_modules中寻找是否含有该模块
如果有则直接使用,如果没有则去上一级目录的node_modules中寻找
如果有则直接使用,如果没有则再去上一级目录寻找,直到找到为止
直到找到磁盘的根目录,如果依然没有,则报错
var math = require(“math”);
console.log(math.add(123,456));