node.js 基础篇 (第二篇 ) 更新ing.......
node.js 中文网 http://nodejs.cn/
1. path模块
path.join():用来拼接路径片段
参数1:可变参数(可以传1-N个参数),路径片段
在路径片段中支持 ‘.’ 和 ‘…’ 操作,分别表示当前目录和上一级目录,传入的参数必须是字符串,返回的结果也是字符串(拼接好的路径)
2.CommonJS规范
node.js 实现了 CommonJS规范,在CommonJS规范中要求有;
- require函数
- exports对象
- module对象
注意:模块加载时同步的,因为在服务器开发魔铠都是本地下载的,加载速度非常快,所以此
规则不适用于浏览器开发
3.作用域
一个js文件可以理解为一个模块,每个模块都有自己私有的作用域,被称为模块作用域
3.1 全局作用域
在模块中的global对象就是全局作用域,如果需要将模块1中的成员给模块2中使用,可以
选择在模块1中将成员挂载到global对象:
模块1.js:
var a=10
global.a=a
模块2.js:
const m=require('./01.模块1.js')
console.log(global.a)
在开发过程中不建议在全局作用中挂载成员,避免全局作用域被污染
3.2 模块作用域
每个js文件内部都是单独的模块作用域,每个模块作用相互无法访问对方的属性和方法
,模块与模块之间共享成员
如果需要到处本模块中成员,可以将需要导出的成员挂载到exports对象身上
m1.js:
var a=1
function sayHi() {}
exports.a=a
exports.sayHi=sayHi
其他模块导入
m2.js :
const m1=require("./m1.js")
console.log(m1.a)
m1.sayhi()
exports其实就是module.exports
但是更推荐使用module.exports,因为导出成员时始终都是以module.exports为准
3.3模块分类
- 核心模块
- 第三方模块
包
规范:
-
包的根目录必须要有 package.json
-
package.json中必须具备三个属性:
name version main
{
“name”:“pname”,
“version”:1.0.0,
“main”:"./lib/main.js"
}
导入包有两种方式:
1.路径表示符
//找到当前目录的calc包的package.json的main属性对应的js文件,将其引入
const salc=require(’./calc’)
2.包名表示符在当前目录中有个node_modules目录,将你需要的包放在该目录中此时引入包
可以使用报名引入
去当前目录的node__modules目录中找calc的文件夹,再去其中的package.json
中找main属性对应的js文件,将其引入
const calc=require("calc")
npm
Node Package Manager (node包管理器)
一般提起npm只两个意思
- 命令行工具npm
- npmjs.com这个网站
全局安装
npm istall i5ting_toc -g
以上指令会将i5ting_toc工具安装到当前操作系统的全局区域
,安装到全局后就可以使用该工具的指令完成一些操作