npm
npm是nodejs的包管理工具。千万千万别再用cnpm了
# npm安装插件的时候会特别慢,可以通过设置淘宝镜像来解决这个问题
npm i nrm -g # 安装一个nrm模块,用来切换npm的仓库镜像地址
nrm ls # 列出当前可以使用的镜像仓库地址
nrm use taobao # 设置当前的安装仓库镜像地址为淘宝镜像, 此操作在一台电脑只需要设置一次就好
npm中常用的命令
npm init # 初始化一个node项目
npm i xx # 安装依赖项
npm i xx -g # 全局安装
npm i xx@version # 安装指定版本的模块
npm uninstall xx # 卸载模块
nodejs执行文件
node xx # node加文件名
## restful风格的api
API,我们在做开发的时候可能需要用到和数据库、服务器、设备等其他资源进行交互。API又叫接口,对外提供一些可以访问的功能。
restful风格的api,它是一种api的编写规范。约定大于配置
/api/vX/resources/.....
api表示这是一个服务接口
vX表示版本号,常见的有v1,v2,v3...
resources表示资源,是名字的复数形式
api提供一些基础的功能curd
/api/v1/movies get 获取列表数据
/api/v1/movies/:id get 根据id获取单条记录
/api/v1/movies post 新增一条记录
/api/v1/movies/:id put 修改数据
/api/v1/movies/:id delete 删除数据
http://www.ruanyifeng.com/blog/2014/05/restful_api.html
## 数据持久化
数据持久化,就是把数据保存在电脑硬盘中,当电脑重启之后还是存在的。比较常见的数据持久化方案:
1. 存文件
2. 存数据库
## 使用存文件的方式实现数据持久化
### 分模块开发
把一个复杂的系统,通过相应的功能拆分,分成一些小功能进行开发,可以让多人同时开发一个项目而互不影响。
模块拆分的时候遵循一个原则:高内聚低耦合
## http请求报文
常见的请求方式
get
post
put
delete
### 请求报文
请求行
请求方式 请求地址 版本号
请求头
cookie,host,origin,Content-Type
请求体
存储的是发送给服务器的数据
请求头和请求体之间有一个空行,空行的作用是分割请求头和请求体
#### 常见的content-type
application/x-www-form-urlencoded url编码
application/json json格式的
multipart/form-data form-data格式的,通常用来上传文件的时候使用
SSR
SSR(Server Side Render),服务器端渲染。所有页面效果生成都是在服务器端进行的,客户端只是用来进行展示
BSR/CSR
BSR(Browser Side Render) 浏览器渲染
CSR(Client Side Render) 客户端渲染
客户端浏览器请求到页面的结构之后,再向服务器发送请求数据的要求,获取数据之后在客户端端浏览器中进行渲染
ejs模板语法
<%= xx %> 在页面中输出显示内容
<%- strHtml字符串 %> 把html内容进行解析之后输出
<% js表达式 %> 尖括号中间的是js内容
npm i axios cheerio
express express-app-first -e
npm uninstall gulp 卸载
npm run XXX可以直接引入 nodemon
是一个NODE模块,用来操作mongodb数据库
npm i mongoose
Person.find // 根据条件查找,返回一个数组
Person.findOne // 根据条件查找,返回一个
Person.findById // 根据id查找
.save // 保存
Person.findByIdAndDelete // 根据id删除
Person.findByIdAndUpdate // 根绝id修改
// try/catch做异常处理
// async/await
// async和await是成对出现的
// await必须放在async修饰的方法内部
// await后面跟一个promise操作,等待promise成功调用
npx express-generator生成一个EXPRESS文件夹
脚手架
npm start 可以端口号
npm i cors 解决跨域app.use(require("cors")());
npm i multer实现图片上传功能
bootstrap 管理后台模板
懒人之间
模板之家
npm i babel-core babel-preset-es2015 babel-cli
npm uninstall babel-preset-es2015
JQ22
<!-- 解决图片资源加载403的问题 -->
<meta name="referrer" content="no-referrer" />
npm i jsonwebtoken 安装一个插件
npm i socket.io