Node.js中间件的使用

1.中间件

 为主要的业务逻辑服务;接收到请求,以及做出响应

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

 (1)路由级中间件

  路由器的使用

 (2)应用级中间件

  也称为自定义中间件,是一个函数(回调函数)

  app.use( '/reg', function(req,res,next){   } )

     拦截url为/reg的路由;  

     next是一个函数,表示执行下一个中间件或者路由

 (3)内置中间件

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

  把所有的静态资源托管到某个目录,如果浏览器请求静态资源,自动到该目录下寻找,无需创建路由

  练习: 把静态资源托管到 files 目录。

 (4)第三方中间件

  body-parser中间件使用

//1.下载安装

npm install body-parser;

//2.引入中间件模块

const bodyParser=require('body-parser');

//3.使用中间件

//将post请求数据解析为对象

app.use( bodyParser.urlencoded({

  extended:false //不使用第三方的qs模块解析查询字符串为对象,而是使用querystring模块

}) )

//4.在post请求的路由中

req.body  返回对象

2.获取数据的方式

 名称

形式

获取(路由)

get

lid=1&pname=dell

req.query

路由传递

/shopping/4999

req.params

post

无法通过url查看

req.body

前提需要使用中间件body-parser

3.mysql模块

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

 mysql -uroot

 INSERT INTO emp VALUES(...)

 DELETE FROM emp WHERE eid=5;

 UPDATE emp SET upwd='1234',sex=0 WHERE eid=4;

 SELECT * FROM emp;

//创建连接对象

var connection=mysql.createConnection({})

//建立连接

connection.connect()

//执行SQL语句

connection.query(sql语句, callback)

  err 可能产生的错误

  result  SQL语句的执行结果

//关闭连接

connection.end()

  执行删除、修改、插入返回对象,如果返回对象的属性中affectedRows大于0,说明执行成功。

  执行查询返回数组

  用户名和密码同时满足的结果,返回一条数据

  SQL注入

  SELECT * FROM user WHERE uname='root' AND upwd='123456' or 1=1;

 

使用连接池

//connectionLimit 用于设置连接池的大小,默认15个

var pool=mysql.createPool( {} );

//执行SQL语句

pool.query(sql语句,callback)

 

 

原文地址:https://www.cnblogs.com/sna-ling/p/12527960.html