路由器、中间件

1.路由器

 用来管理路由,将同一个功能模块下的所有的路由统一管理,最终路由器被WEB服务器使用

路由器、中间件_第1张图片

路由器

const express=require('express'); //引入express

const r=express.Router();//创建路由器对象

//添加路由

module.exports=r; //导出路由器对象

WEB服务器引入并使用路由器

const userRouter=require('./user.js');

app.use('/user',userRouter);

 练习:编写app.js文件,创建WEB服务器,添加用户列表的路由(get  /list),响应‘这是用户列表’;添加商品列表的路由(get  /list),响应‘这是商品列表’

 练习:完成用户路由器user.js,添加用户列表路由(get /list),导出路由器,最后在app.js下引入路由器并使用,添加前缀/user

const express=require('express');
//引入用户路由器
console.log(userRouter);
//创建WEB服务器
const app=express();
//设置端口
app.listen(8080);

//商品列表(get /list)

app.get('/product/list',(req,res)=>{
  res.send('这是商品列表');
});



//用户列表(get /list)

app.get('/user/list',(req,res)=>{
  res.send('这是用户列表');
});

2.中间件

 用于拦截对服务器的请求

 分为应用级中间件、路由级中间件、内置中间件、第三方中间件、错误处理中间件

 (1)应用级中间件

  就是一个函数,一旦拦截到以后会自动调用这个函数

  app.use( 要拦截的URL, 函数 )

  练习:添加到购物车的路由(get  /shopping),传递商品的价格price,添加中间件,实现对商品价格打九折,最后响应‘商品的价格:xxxx’

const express = require("express");
const app = express();
app.listen(8080);

/*function fn(req,res,str){
 console.log(req.query);
 req.query.price*=0.9;
 str();
 }
app.use('/shopping',fn);
app.get('/shopping',(req,res)=>{
 res.send('商品的价格:'+req.query.price)
})*/

  http://127.0.0.1:8080/shopping?price=1000

 (2)路由级中间件

  就是路由器的使用

 (3)内置中间件

  托管静态资源中间件

  如果浏览器端请求静态资源(html,css,js,图像...),不需要通过路由去响应,而是自动的到某个目录下寻找。

  app.use( express.static('要托管的目录') )

  练习:编写04_three.js文件,创建WEB服务器,托管静态资源到public目录,包含文件login.html,点击提交向服务器请求(post  /mylogin),获取传递的数据,响应‘登录成功’

   路由器、中间件_第2张图片

//html代码

用户
密码
//JS代码 const express=require('express'); //1.引入body-parser中间件模块 const bodyParser=require('body-parser'); //引入查询字符串模块 //const querystring=require('querystring'); //创建WEB服务器 const app=express(); //设置端口 app.listen(8080); //托管静态资源到public目录 app.use( express.static('./public') ); //2.使用body-parser中间件,将所有post请求的数据解析为对象 //body-parser中间件也是内置的中间件,也可以使用express app.use( express.urlencoded({ extended:false //是否使用第三方的qs模块解析为对象 }) ); //添加路由(post /mylogin) app.post('/mylogin',(req,res)=>{ //3.获取post传递的数据 console.log(req.body); res.send('登录成功'); });

 (4)第三方中间件

  都是以第三方模块的形式存在,需要先下载安装

  body-parser中间件

    下载安装   npm   install  body-parser

//1.引入body-parser

//2.使用body-parser将所有post请求的数据解析为对象

app.use( express.urlencoded({

  extended:false  //是否使用第三方的qs模块解析为对象

}) );

//3.在路由中获取post请求的数据

req.body

  其它第三方中间件:https://www.expressjs.com.cn/resources/middleware.html

  文件上传中间件:http://www.codece.com/archives/173

3.mysql模块

 是Node.js下专门用于操作mysql数据库的模块

 下载安装

    npm  install   mysql

 连接数据库

   mysql.exe  -h127.0.0.1  -P3306  -uroot   -p

   mysql  -uroot

   mysql  -uroot<拖拽SQL脚本文件

你可能感兴趣的:(JS,node.js,html5,javascript)