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  凭据

删除用户名密码

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Leprehuan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值