一、fs文件系统模块
1.fs.readFile()读取内容
//导入fs模块,来操作文件
const fs = require('fs')
//参数1:读取文件的存放路径
//参数2:读取文件时候采用的编码格式,一般默认指定 utf8
//参数3:回调函数,拿到读取失败和成功的结果
fs.readFile('参数1', 'utf8', function(err, dataStr) {}
2.fs.writeFile()写入内容
在涉及到fs方法,要使用_ _dirname方法表示当前文件所处目录,可以更好处理动态拼接问题
二、path路径模块
1.导入path模块
const path=require('path')
path.join() 进行路径拼接操作
path.basename() 可以从文件路径中,获取文件的最后名称部分
path.extname() 获得文件扩展名部分
2.拆解css,js,html文件
resolveCSS(dataStr)
resolveJS()
resolveHTML();将字符串调用replace方法,把内嵌的style和script标签替换为外联的link和script标签
三、http模块
创建web服务器
导入http模块;
创建web服务器实例;
为服务器实例绑定request事件,监听客户端的请求;
启动服务器
四、模块化
将代码进行模块化拆分
1.Node.js中模块化
内置模块(由node.js官方提供的,例如fs.path.http)
自定义模块(用户创建的js文件)
第三方模块(第三方开发出来的,需下载)
模块作用域的好处:防止全局变量污染问题
1.module.exports对象
(可以简化为exports),实现对外共享模块内成员
2.commonJS模块化规范
每个模块内部,module变量代表当前模块;
module变量是一个对象,他的exports属性是对外的接口;
require()方法用于加载模块
2.Npm与包
1.装包
执行npm i 后跟包的完整名称
2.创建psckage.json文件
执行npm init –y
五、express
基于node.js的web开发框架
1.安装express
npm i express
2.导入
const express=require('express')
3.托管静态资源
express.static()可以将目录下的文件对外开放;在前面加前缀字符串,还可以挂载路径前缀
4.nodemon
监听文件变动,自动重启项目
安装需执行npm i -g nodemon
5.express路由
express的路由是指客户端的请求与服务器处理函数之间的映射关系
6.express模块化路由
调用express.router()函数创建路由对象
module.exports对外共享路由对象
使用app.use()函数注册路由模块
7.express中间件
(必须包含next形参)
全局生效的中间件:使用app.use()定义的中间件
局部中间件:不使用app.use()定义的中间件,定义中间件函数后,放在创建路由中
8.使用express写接口
编写post接口,编写get接口;
使用cors中间件解决跨域问题:
- 安装中间件,执行npm i cors
- 导入中间件,const cors=require('cors')
- 配置中间件,调用app.use(cors())
cors主要在服务器端进行配置
简单请求:客户端与服务器只会发生一次请求
预检请求:会发生两次请求,OPTION预检请求成功之后发起真正请求
六、数据库
1.安装并配置MySQL
(MySQL Server 和MySQL Workbench)
2.MySQL的基本使用
1.在MySQL Workbench中创建数据库,再创建数据表,再填写数据
2.用SQL管理数据库
SQL可以实现数据的增删改查:
select 查询 *代表所有列;
insert into插入新的数据行;
update更新数据;
delete删除,一定要记得后面加where,要不然会删除全部数据;
order by 排序;
count(*) 总数;
as 重新起名
3.在项目中操作MySQL
安装mysql模块
执行npm i mysq
连接MySQL数据库
导入 mysql 模块
建立与 MySQL 数据库的连接关系后可进行数据的增删改查
执行SQL语句
4.前后端
服务端渲染特点
前端耗时少;有利于SEO;
但占用服务器资源;不利于前后端分工;
使用Session身份认证机制 cookie
在express中使用session认证:
安装express-session中间件,安装后导入并注册
前后端分离的开发模式特点
(后端提供API接口,前端调用Ajax调用接口)
开发与用户体验更好;减少服务器端压力;
不利于SEO,但可用SSR技术解决;
使用JWT身份认证机制 token
在express中使用JWT认证
执行npm i jsonwebtoken express-jwt安装两个包后导入;
定义secret秘钥