node.js
fs
npm init # 初始化一个node项目
node xxx # 运行指定的node文件
package.json 中的 scripts 节点, 可以配置我们可以在项目中运行的命令
package.json 配置了我们当前项目的信息和项目所依赖的第三方插件
// node js 中的模块查找 首先会查找系统模块
// 然后会查找当前 node_ modules目录中安装好的第三方模块
// 如果都没有找到会报错
// nodejs引入模块的时候如果加了相对路径,那么会在当前项目的文件夹中进行查找
npm i axios # 安装模块
# axios 可以根据你当前的使用环境切换底层发起网络请求使用的api
# axios 在浏览器里面发起请求使用的是xhr(XMLHttpRequest)或者fetch方法
# axios 在nodejs中发起请求使用的是http
npm i cherrio # 第三方模块使用,此插件可以用来解析html内容,可以用来做爬虫
express 框架
npm i express # 安装插件
Charles 百度搜索 请求报文 blog.csdn.net/weixin_4434…
SSR和CSR
SSR(Server Side Render) 服务器端渲染 所有的代码阻止个数据处理都在服务器端进行,服务器端输出最终在客户端展示的html内容,客户端只负责展示
CSR(Client Side Render) 客户端渲染 服务器端首先输出的是页面结构,页面中的数据都需要客户端重新请求服务器端的api接口实现,然后当api返回数据之后,在客户端重新渲染页面 前后端分离就是属于客户端渲染的范畴
插件
npm i nodemon -g # 此插件可以再修改了nodejs项目代码之后1重新启动项目
文件上传
- 服务器端
接收客户端传递的文件数据,把文件保存在服务器的文件夹中。
返回一个可以访问到的路径
服务器会把文件路径存储在数据库中
- 客户端
一般情况下客户端使用二进制的文件的方式上传数据
<input type="file">
使用ajax上传的时候需要设置请求头的content-type值为form-data
nodejs中实现文件上传的服务器端
npm i multer # 安装插件,解析客户端传递的form-data数据
客户端实时的和服务器进行数据交互
- 轮询
在客户端创建一个定时器,定期向服务器请求新的数据
- socket
是和服务器建立一个长连接,服务器端可以主动推送数据到客户端
websocket可以在网页中实现socket通信。
socket.io 插件
应用场景
- 数据大屏
- 卖家听单,骑手听单
- 打车软件
- 聊天室或者直播
常见安全网络防护
XSS 脚本攻击
npm 有个插件 xss 能解决XSS攻击
npm i xss
CSRF 跨域资源访问(攻击)
前端的发展历程
table布局->div+css->jQuery
前端页面功能越来越复杂,引入一些服务器端开发的思想。就出现了前端框架
1. 便于代码组织
2. 项目可维护性更强
3. 可以多人同时开发一个项目
mvc 是一种开发思想(模式)
model 存储数据
view 展示数据
controller 控制数据以什么新形势展示
BackBone(jQuery+underscore+backbone+require.js)
require.js AMD的模块加载机制(异步加载)
bower 做模块管理 前端模块化管理工具
yeoman 前端项目脚手架搭建工具
grunt 前端自动搭建工具
gulp 前端自动化构建工具
angular mvvm框架
react
Vue
json-server
npm i json-server -g # 全局安装