node.js 基础篇 (第二篇 ) 更新ing.......

node.js 中文网 http://nodejs.cn/

1. path模块
path.join():用来拼接路径片段
参数1:可变参数(可以传1-N个参数),路径片段

node.js 基础篇 (第二篇 ) 更新ing.......

在路径片段中支持 ‘.’ 和 ‘…’ 操作,分别表示当前目录和上一级目录,传入的参数必须是字符串,返回的结果也是字符串(拼接好的路径)

2.CommonJS规范
node.js 实现了 CommonJS规范,在CommonJS规范中要求有;

  1. require函数
  2. exports对象
  3. 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模块分类

  1. 核心模块
  2. 第三方模块


规范:

  1. 包的根目录必须要有 package.json

  2. 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只两个意思

  1. 命令行工具npm
  2. npmjs.com这个网站
    全局安装
    npm istall i5ting_toc -g

以上指令会将i5ting_toc工具安装到当前操作系统的全局区域
,安装到全局后就可以使用该工具的指令完成一些操作