学习Node.js(二)

103 阅读2分钟

梦想是一个天真的词, 实现梦想是一个残酷的词。

image.png

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第 3 天,点击查看活动详情

模块化

模块化是自顶向下逐层把系统分为若干模块来解决一个复杂问题。模块是可组合、分解和更换的单元。

  • 代码进行模块化的好处
    • 提高了代码的复用性
    • 提高了代码的可维护性
    • 实现按需加载

内置模块: 由 Node.js 官方提供的

  • fs 模块
  • path 模块
  • http 模块

自定义模块:用户创建的每个.js文件都是自定义模块 ( require 加载模块时,可以省略.js后缀名)
第三方模块:第三方模块使用前需要先下载才能够使用

Node.js 模块化

Node.js 遵循 CommonnJS 模块化规范,CommonnJS 规定了模块的特性和各模块之间如何相互依赖。

CommonnJS 规定:
①:每个模块内部,module 变量代表当前模块
②:module 变量是一个对象,它的exports属性是对外的接口
③:加载某个模块,就是加载该模块的 module.exports 属性。require() 方法用于加载模块

  • module 对象

    在每个 .js 自定义模块中都有一个 module 对象,里面存储了和当前模块有关的信息。

    require() 模块时,永远指向的是 module.exports 指向的对象
    默认情况下,exports 和 module.exports 指向同一个对象。

  • 项目包:安装到 node_modules 目录中的包
    • dependencies节点:专门记录使用 npm install 命令安装了哪些包(安装时加 -S 参数)
    • devDependencies:只在项目开发阶段会用到的包,项目上线之后就不会用到(安装时加 -D 参数)
  • 全局包:具有工具性质的包

npm 对包进行统一管理

package.json 文件,描述了项目中的配置信息。里面必须包含包的名字(name)、版本号(version)、入口(main)

(当下载包时,会出现下载速度慢的问题。这是由于网络传输需要经过漫长的海底光缆,想要解决这个问题可以通过淘宝 NPM 镜像服务器进行下载。)

# 查看当前的下包镜像源
npm config get registry
# 将下包的镜像源切换为淘宝镜像源
npm config set registry=https://registry.npm.taobao.org/
# 检查镜像源是否下载成功
npm config get registry

i5ting_toc:可以把 md 文档转换成 html 页面
i5ting_toc -f filename -o // -o表示转换完成用默认浏览器打开