node.js

505 阅读3分钟

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重新启动项目

文件上传

  1. 服务器端
接收客户端传递的文件数据,把文件保存在服务器的文件夹中。
返回一个可以访问到的路径
服务器会把文件路径存储在数据库中
  1. 客户端
一般情况下客户端使用二进制的文件的方式上传数据

<input type="file">

使用ajax上传的时候需要设置请求头的content-type值为form-data

nodejs中实现文件上传的服务器端

npm i multer # 安装插件,解析客户端传递的form-data数据

客户端实时的和服务器进行数据交互

  1. 轮询

在客户端创建一个定时器,定期向服务器请求新的数据

  1. socket

是和服务器建立一个长连接,服务器端可以主动推送数据到客户端

websocket可以在网页中实现socket通信。

socket.io 插件

应用场景

  1. 数据大屏
  2. 卖家听单,骑手听单
  3. 打车软件
  4. 聊天室或者直播

常见安全网络防护

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 # 全局安装