Node.js 组成
Node.js模块化开发
JavaScript在使用时存在两大问题,文件依赖和命名冲突
依赖关系不确定。
模块化开发
一个功能就是一个模块,多个模块可以死组成完整应用,抽离一个模块不会影响
其他功能的运行
Node.js中模块化开发规范
Node.js规定一个JavaScript文件就是一个模块,模块内部定义的变量和函数默认情况下载外部无法得到
模块内部可以使用exports对象进行成员导出,使用require方法导入其他模块.
const,var,let都是js中声明变量的,其中 const不可修改,而且必须初始化。
模块成员导出的另一种方式:
exprots是module.exports的别名(地址引用关系),导出对象最终以module.exports为准。
const greeting = name=> 'hello ${name}';
const x = 100;
exports.x = x;
module.exports.greeting = greeting;
//当exprots对象和moudle.exports对象指向的不是同一个对象时 以module.exports为准
module.exports = {
name: 'zhangsan'
}
exports = {
age: 20
}
注意:这里的const greeting = name=> ‘hello ${name}’;中用的是ES6的模板字符串方法,name是可以替换的,用反引号设置字符串.const也是ES6中增加的声明变量的。
系统模块
Node运行环境提供的API,因为这些API都是以模块化的方式进行开发的,所以我们又成Node运行环境提供的API为系统模块。
系统模块fs文件操作
写入文件内容:
系统模块path路径操作
为什么要进行路径拼接
不同操作系统的路径分隔符不统一
相对路径VS绝对路径
用相对路径相对的是否是当前的文件,大多数情况下相对路径相对的是命令行工具的当前工作目录。
第三方模块
别人写好的,具有特定功能的,我们能直接使用的模块即第三方模块,由于第三方模块通常是由多个文件组成并且被放置在一个文件夹中所以又名包。
第三方模块有两种存在形式:
以js文件的形式存在,提供实现项目具体功能的API接口。
以命令行工具形式存在,辅助项目开发。
npmjs.com:第三方模块的存储和分发仓库
第三方模块 nodemon
nodemon是一个命令行工具,用以辅助项目开发。
在Node.js中,每次修改文件都要在命令行工具中重新执行该文件,非常繁琐
第三方模块: nrm
nrm : npm下载地址切换工具,因为默认的下载地址在国外,国内下载速度慢
使用步骤:
- 使用npm install nrm -g 下载
- 查询可用下载地址列表 nrm ls
- 切换npm下载地址nrm use 下载地址名称
第三方模块 Gulp
基于node平台开发的前端构建工具
将机械化操作编写完成任务,想要执行机械化操作时执行一个命令行命令任务就能自动执行了
用机器代替手工,提高开发效率
Gulp能做什么
项目上线,HTML,CSS,JS文件压缩合并
语法转换(es6,less。。。)
公共文件抽离
修改文件浏览器自动刷新