node基础

服务器端开发要做的事情
实现网站的业务逻辑
实现数据的增删改查

node是什么
node是一个基于Chrome V8引擎的JS代码运行环境

Node.JS运行环境安装
官网:https://nodejs.org/en/

Node.JS的组成
Node.JS是由ECMAScript和Node环境提供的一些附加API组成的

Node.JS基础语法
所有ECMAScript语法在node环境中都可以使用

JS开发弊端
文件依赖
命名冲突

模块开发规范
Node.js规定一个JavaScript文件就是一个模块,模块内部定义的变量和函数默认情况下在外部无法得到
模块内部可以使用exports对象进行成员导出,使用require方法导入其他模块

系统模块
是Node运行环境提供的API,这些API都是以模块化的方式进行开发的

fs文件操作
f:file文件,s:system系统
读取文件内容
fs.reaFile(‘文件路径/文件名称’[,‘文件编码’],callback);
写入文件内容
fs.writerFile(‘文件路径/文件名称’,‘数据’,callback);
路径拼接
path.join(‘路径’,‘路径’,…)
使用_dirname获取当前文件所在的绝对路径

第三方模块
别人写好的,具有特定功能的,我们能直接拿来使用的,通常由多个文件组成,又叫包
两种存在形式
以JS文件的形式存在:提供实现项目具体功能的API接口
以命令行工具形式存在,辅助项目开发
获取第三方模块
npmjs.com:第三方模块的存储和分发仓库
npm(node package manger):node的第三方模块管理工具
下载:npm install模块名称
删除:npm unintall package模块名称
nodemon
一个命令行工具,用以辅助项目开发
使用步骤
1.使用npm install nodemon-g下载
2.在命令行工具中用nodemon命令替代node命令执行文件
nrm
npm下载地址切换工具
使用步骤
1.使用npm install nrm-g下载
2.查询可用下载地址列表nrm ls
3.切换npm下载地址nrm ls下载地址名称
Gulp
基于node平台开发的前端构建工具
可用于文件压缩合并,语法转换,公共文件抽离,修改文件浏览器自动刷新
Gulp使用
1.使用npm install gulp下载gulp库文件
2.在项目根目录下建立gulpfile.js文件
3.重构项目文件夹结构,src目录放置源代码文件,dist目录放置构建后文件
4.在gulpfile.js文件中编写任务
5.在命令行工具中执行gulp任务
Gulp提供的方法
gulp.src():获取任务要处理的文件
gulp.dest():输出文件
gulp.task():建立gulp任务
gulp.watch():监控文件的变化
Gulp插件
gulp-htmlmin:html文件压缩
gulp-css:压缩CSS
gulp-babel:JS语法转化
gulp-less:less语法转化
gulp-uglify:压缩混淆JS
gulp-file-include:公共文件包含
browsersync:浏览器实时同步

package.json文件
node_modules文件夹的问题
1.文件夹以及文件过多过碎,会影响传输速度
2.复杂的模块依赖关系需要被记录,确保版本一致,否则会导致项目运行报错
package.json文件的作用
项目描述文件,记录了当前项目信息,使用npm init -y生成
项目依赖
在项目的开发阶段和线上运行阶段,都需要依赖的第三方包,称为项目依赖
使用npm install包名命令下载的文件都会被默认添加到package.json文件的dependencies
开发依赖
在项目开发阶段需要依赖,线上运营阶段不需要依赖的第三方包,称为开发依赖
使用npm install包名–save-dev命令将包添加到package.json文件的devDependencies字段中
package-lock.json的作用
锁定包的版本,确保再次下载时因版本不同产生问题
加快下载速度

Node.js中模块的加载机制
模块查找规则-当模块拥有路径但没有后缀时
require(’./find.js’);
require(’./find’);
1.require方法根据模块路径查找模块,如果是完整模块,直接引入模块
2.如果模块后缀省略,先找同名JS文件再找同名JS文件夹
3.如果找到了同名文件夹,找文件夹中的index.js
4.如果文件夹中没有index.js就会去当前文件夹中的package.js文件中查找main选项中的入口文件
5.如果找指定的入口文件不存在或者没有指定入口文件就会报错,模块没有被找到
模块查找规则-当模块没有路径且没有后缀时
require(‘find’);
1.Node.js会假设它是系统模块
2.Node.js会去node_module文件夹中
3.首先看是否有该名字的JS文件中
4.再看是否有该名字的文件夹
5.如果是文件夹看里面是否有index.js
6.如果没有index.js查看该文件夹中的package.json中的main选项确定模块入口文件
7.否则报错

上一篇:day21


下一篇:Gulp 基础(前端自动化打包构建工具)