Node.js(二)
商品模块 /product
列表、 删除、 修改
/product/list /product/delete /product/add
用户模块 /user
列表、 删除、 修改
/user/list /user/delete /user/add
3、路由器
用来管理路由,通常将一个功能模块下的路由放到一个路由器下 例如:所有用户模块下的路由放入到用户路由器
创建路由器并导出 const express = require(‘express’);//引入express const r = express.Router();//创建路由器对象 //添加路由 module.exports = r; //导出路由器对象 |
在WEB服务器下引入并挂载 app.use(‘/user’,userRouter) |
4、中间件
用于拦截对路由的请求,也可以作出响应,允许往后继续执行(下一个中间件或者路由);本质是一个函数,一旦拦截到会自动调用这个函数。
分为应用级中间件、路由级中间件、内置中间件、第三方中间件、错误处理中间件
(1)应用级中间件,也称为自定义中间件
app.use(要拦截的URL,回调函数) 例如:app.use('/list', fn) function fn(req,res,next){ next() //往后继续执行,可能是下一个中间件,或者是路由 } |
练习,创建添加到购物车的路由(get /shopping)传递商品的价格price,添加中间件拦截该路由,对价格打8折,最后在路由器中响应‘商品的最终价格:xxx’ ?price = xxx
(2)路由级中间件
路由器的使用
app.use(要拦截的URL, 路由器)
(3)内置中间件
托管静态资源(html,css,js,图像...)
如果浏览器端要请求静态资源,不需要通过路由响应文件,而是自动去寻找文件。
app.use( express.static('要托管的目录') );
练习:再次托管静态资源到files目录,如果public和files目录出现相同的文件名称,哪一个起作用
练习:编写文件05_three.js,创建WEB服务器,设置端口8080;托管静态资源到public目录,新建文件login.html,点击提交向服务器发请求(post /login),创建路由,获取传递的数据,响应‘登录成功’
(4)第三方中间件
第三方中间件属于第三方模块,需要先去下载安装
npm install body-parser |
//1.引入body-parser中间件 const bodyParser = require('body-parser'); |
//2.使用body-parser中间件,将post请求的数据解析为对象 app.use( bodyParser.urlencoded({ extended: false //是否使用第三方的查询字符串模块qs,如果不使用就会使用核心模块下的querystring }) ); |
//3.路由中获取post传递的数据 req.body |
5、mysql模块
属于第三方模块,Node.js下操作mysql数据库的模块
下载安装
npm install mysql
连接
mysql -uroot
mysql.exe -h127.0.0.1 -P3306 -uroot -p
mysql -uroot<拖拽脚本 回车
insert into emp values(...);
delete from emp where eid=1;
update emp set sex=1,... where eid=2;
select * from emp where ...
课后任务
(1)复习今天内容,整理思维导图
(2)
整理express的用法(WEB服务器创建、路由、数据传递的方法、中间件)
回顾之前mysql数据的使用
SQL命令,增删改查
5.26
1、mysql模块
(1)创建普通连接
createConnection()
(2)执行sql语句
query(sql命令,回调函数)
属于异步操作,通过回调函数获取结果 err:可能产生的错误 result: 成功的结果
(3)创建连接池
creatPool()
(4)占位符(?)
SQL注入:在让用户提供的值中出现了对数据库有攻击的命令
解决方法:对所有用户提供的值进行过滤
所有SQL命令中需要拼接的用户的值,先进行过滤,然后再去替换占位符
query(‘delete from emp where eid = ? ’,[18],(err,result)=>{ }) |
2、正则表达式
正则表达式完整视频
https://pan.baidu.com/s/1IgYS8oGBrRgZQropPUTnoA 提取码:nbx3
正则相关函数的用法总结
https://pan.baidu.com/s/1Rvqr-5UI7NxoxArdgxyRhg 提取码:08yj
3、RESTful接口(API)
接口:后端为前端提供的动态资源(数据,后端验证、...)
RESTful是一种接口设计风格()
动态资源就是一个URL形式
(1)URL
所有的资源都需要版本号,复数形式 例如:请求员工资源 http://127.0.0.1:8080/v1/emps 多个资源
版本号 资源名称
版本2 的 用户资源
http://127.0.0.1:8080/v2/users 多个资源
http://127.0.0.1:8080/v2/users /3 单个资源,通过编号获取
编号
http://127.0.0.1:8080/v2/users /checkuname 检测用户名
对资源的特殊操作
app.get(‘/v2/users’,()=>{}) 用法
(2)请求方法
对资源的操作方式
get 获取资源
delete 删除资源
post 新建资源
put 修改资源
练习:添加路由,删除某一个用户资源
app.delete(‘/v2/users:uid’,()=>{ })
(3)过滤数据
查询的结果有太多的记录,需要过滤想要的数据
例如:分页
http://127.0.0.1:8080/v2/users?pno= 1&count=10
页码 每页的数据量
例如:获取商品的价格区间
http://127.0.0.1:8080/v2/users?price1 = 10000&price2 = 20000
(4)返回结果
包含状态码、消息、数据(不一定都有)
登录的接口
{
“code” :200;
“msg” : ' 登录成功’;
}
获取员工的数据
{
“code”: 200
“msg” : '获取成功‘’;
“data” : [....]
}
练习:创建WEB服务器 ,设置端口
添加路由(get /v1/emps),响应 {“code:200,"msg":‘获取成功’}
课后任务:
完成删除员工的接口
请求方法 delete /v1/emps/编号
响应结果 {code:200,msg:‘删除员工’}
5.27
练习:在app.js下创建WEB服务器并设置端口
练习:创建路由器目录router,目录下包含有用户路由器user.js,创建路由其对象,添加用户注册的路由(post /reg),响应{code: 200, msg: '注册成功'}
练习:在WEB服务器app.js中引入用户路由器(./router/user.js),并挂载,添加前缀/v1/users
/reg
/v1/users/reg
练习:在连接池pool.js中,引入mysql模块,创建连接池对象,导出这个对象;
在user.js中引入连接池模块( ../pool.js ),打印查看是否得到导出的对象,执行SQL命令
练习:在user.js中编写用户登录的路由(post /login),获取post请求的数据,验证各项是否为空,执行SQL命令,如果查询到了用户名和密码同时匹配的数据就是登录成功,否则登录失败。
练习:编写按照编号查找员工(get /编号),获取传递的编号,执行SQL命令,查询编号对应的用户,如果没有查询到{code: 201,msg: '该用户不存在'},否则查询到{code: 200, msg: '查询成功', data: [ .. ] }
练习:编写按照编号删除员工(delete /编号),获取传递的编号,执行SQL命令,删除编号对应的用户,如果删除失败{code: 201, msg: '删除失败'},否则删除成功{code: 200, msg: '删除成功'}
http://127.0.0.1:8080/v1/users/3
git下载地址
https://pc.qq.com/detail/13/detail_22693.html
码云注册账号
https://gitee.com/
GitHub注册账号
https://github.com
5.28
分页查询
已知条件:当前页码 每页的数据量
开始的查询值 = (当前的页码-1)*每页的数量
select * from xz_user limit 开始查询的值 ,每页的数据量
1、VCS系统
版本控制系统 用于项目中存储、共享、合并、历史回退,代码追踪文件历史等功能
常用VCS软件
CVS 2000年以前
SVN 2010年以前
Git 2010年至今
2、GIt中的常用概念’
工作目录:是一个目录,用于保存项目中的文件
暂存区:
(1)Git软件第一次使用的时候 告诉git你是谁
git config --global user.name "自定义用户名”
git config --global user.email "用户邮箱”
(2)初始化仓库
git init
(3)查看当前git系统的状态
git status
(4)将当前工作目录中的指定文件添加到暂存区
git add 文件名称
git add. 将当前工作目录中所有的新文件或者修改了的文件添加到工作区
(5)将暂存区中所有文件提交到git仓库
git commit -m "提交内容说明"
(6)查看git仓库中的提交记录
git log 只能看到当前版本及之前的提交记录
git reflog 查看所有版本的提交记录、回退记录
练习:创建2.html,随便写内容,添加到暂存区,提交到git仓库
练习:修改1.html和2.html的内容,添加到暂存区,提交到git仓库
(7)忽略文件
有些文件或者目录不需要提交到git仓库,可以忽略
使用任意的编辑器新建文件.gitignore 把要忽略的文件名称写入这个文件中
(8)历史回退
git reset --hard 提交的id
练习:创建目录tedu ,在这个目录下打开git窗口,初始化git仓库来管理项目
练习:创建index.html,随便写内容,提交到git仓库
练习:创建目录img,添加两张图像,提交到仓库
练习:创建目录css ,添加1.css和2.css,随便写内容,提交到仓库
练习:修改index.html中的内容,删除1.css和 1张图像,提交到仓库
练习:不断回调到第一个版本,最后回退到最新版本
4、Git分支
分支是为了不影响主线的工作,便于模块化开发
分支就是拷贝主线的一个副本,最终还是要合并到主线
(1)创建新的分支
git branch 分支名称
(2)查看所有的分支
git branch
(3)切换分支
git checkout 分支名称
(4)合并分支
git merge 分支名称
(5)删除分支
git branch -d 分支名称 删除已经合并的分支
git branch -D 分支名称 强制删除分支
5、远程仓库
国内:码云
国际:GitHup,世界上最大的代码托管平台
先创建远程仓库,产生仓库地址
git push 仓库地址 分支名称
将本地仓库的分支推送到远程仓库
输入错误,修改用户名密码需要删除之前的 控制面板 -> 凭据管理器 ->windows 凭据 删除用户名密码 |
Node.js(二)相关推荐
- Node.js(二)——pug模板引擎,nunjucks模板引擎,在koa中使用pug和nunjucks模板引擎
目录 1.知识点及课堂目标 2.模板引擎 3.pug模板引擎使用 3.1安装pug 3.2pug常用语法 3.2.1通过缩进关系,代替以往html的层级包含关系. 3.2.2html 元素属性/sty ...
- Node.js(二)----安装Cnpm
---恢复内容开始--- 1.安装CNPM 因为天草的 Great Wall 导致下载速度龟速....所以安装Cnpm淘宝镜像 2.命令 2.1 如果版本合适 设置镜像地址 npm config se ...
- Node.js 笔记01
一.Node.js 前言 1.node.js 之父 Ryan Dahl(瑞安达尔) ,技术好,颜值高! 数学系博士, 中途退学, 为了生活, 学习了Ruby On Rails接Web项目, 经过两年成 ...
- win10 更新Node JS和npm
一.更新NodeJS 1. 先查看NodeJS的版本 到命令行中輸入指令:node -v 就能獲得當前Node JS的版本. 由於,我是在更新完成后才寫的這篇文章,所以,截的圖也是已經更新完成后的最新 ...
- 如何安装node.js
Node.js安装教程 目录 Node.js安装教程 一.下载Node.js 二.检查是否安装完毕 三.修改全模块的路径和缓存 四.将npm源更改为国内淘宝源 五.安装基于淘宝源的cnpm 六.安装完 ...
- 【Node.js】初识Node.js
系列文章目录 文章目录 系列文章目录 一.什么是 Node.js 二.下载和安装 Node.js 1.普通方式 2.使用 nvm 安装 三.Node.js 和 JavaScript 的区别 1.ECM ...
- WIN11安装node.js
一.安装包下载 Download | Node.js 二.安装 自定义安装路径.安装选项按照默认即可. 三.检查 打开cmd,输入node -v和npm --v查看版本. 四.配置 自定义npm安装的 ...
- JavaScript 的进阶学习 (Node.js)_01
Node的学习 Node.js 是一个基于 Google 所开发的浏览器 Chrome V8 引擎的 JavaScript 运行环境. 属于 服务端的 JavaScript . 2019.03.01 ...
- 【微信小程序】小程序开发—node.js下载,npm配置以及组件使用
目录 一.下载Node.js 二.微信开发者工具中安装Node.js 三.用Node.js中的npm安装vant组件 一.下载Node.js 1.官方下载地址:node.js官方下载地址 直接下载第一 ...
- 【使用 node 版本切换工具 nvm 切换 node.js 版本】
使用 node 版本切换工具 nvm 切换 node.js 版本 文章目录 使用 node 版本切换工具 nvm 切换 node.js 版本 前言 一.nvm是什么? 二.使用步骤 1.卸载原有 no ...
最新文章
- pythonsklearn乳腺癌数据集_使用sklearn的样本数据集
- LVS(9)——为NAT单独增加路由器
- java一系列数组的表示方法_Java入门系列-10-数组
- tensorflow独热编码方法_吴恩达课后作业学习2-week3-tensorflow learning-1-基本概念
- RabbitMQ 的延时队列和镜像队列原理与实战
- [Groovy] How to check if element in groovy array/hash/collection/list?
- jQuery如何去判断页面是否有父页面?
- java 指定格式的date_指定格式的日期字符串转化成java.util.Date类型日期对象
- 组态王与Modbus协议的地址对应规则
- Win10(11)下Qt6.2编译Qtxlsx库
- 转 Html转pdf的工具——wkhtmltopdf
- 【性能测试基础】性能专有名词解析及性能瓶颈分析技巧
- python上的包嗅探
- 理财入门书-小狗钱钱 -读书笔记
- CentOS 7 下的软件安装方法及策略
- Windows上架设Turn服务器
- cfDNA的5-羟甲基胞嘧啶谱高度预测弥漫大B细胞淋巴瘤患者的R-CHOP治疗反应
- 一文吃透MySQL面试八股文
- 【NOIP2017】Day4
- A和G cup的差距究竟有多大?| 今日趣图
热门文章
- matlab 嵌套循环
- android 全选功能,Android Recyclerview实现多选,单选,全选,反选,批量删除的功能
- win11快速启动有必要关闭吗?如何关闭?
- 软考中级 真题 2016年下半年 系统集成项目管理工程师 基础知识 上午试卷
- html中怎么写虚线框的宽高,html如何设置虚线边框
- mysql 编程算法_十大编程算法助程序员走上高手之路
- 大数据之数据质量检查
- 《计算机操作系统》(第四版)汤子瀛等编著——思维导图详细版本
- 软著申请所需资料整理(软件著作权)
- Dwarves (有向图判环)