Node.js(三)路由器、中间件、MySQL模块、RESTful接口
一、路由器
用来管理路由,将一个模块下所有的路由放到一起,最后被WEB服务器使用。用法如下:
//路由器下:
const express = require('express'); //引入express
const r = express.Router( ); //创建路由器
r.get('/list',(req,res)=>{ //添加路由
res.send('这是用户列表');
});
module.exports = r; //导出路由器对象
//WEB服务器下:
const express = require('express'); //引入express
const userRouter = require('./user.js'); //引入用户路由器
console.log(userRouter);
const app = express( ); //创建web服务器
app.listen(8080,()=>{ //设置端口
console.log('服务器创建成功!');
});
app.use('/user',userRouter); //使用路由器,把路由器下所有的路由挂载到WEB服务器下,'/user'是为路由添加的前缀
二、中间件
处于请求和响应之间,可以拦截请求,也可以做出响应。所有中间件在使用前均先创建服务器。
1. 应用级中间件
就是一个函数,一旦拦截到会执行这个函数
格式:app.use(要拦截的URL,函数)
app.use('/shopping',(req,res,next)=>{ //添加中间件
//获取get传递的数据
console.log(req.query);
req.query.price *= 0.9;
next( ); //往后执行
});
app.get('/shopping',(req,res)=>{ //添加到购物车
console.log(req.query);
res.send(`商品的价格:${req.query.price}`);
});
2. 路由级中间件
路由器的使用
app.use(要拦截的URL,路由器)
3. 内置中间件
用于托管静态资源,如果客户端托管静态资源(html、css、js、图像......),不需要通过路由器响应,而是自动的到指定的目录下寻找。
格式:app.use(express.static(托管的目录的路径));
app.use(express.static('./public'));
4. 第三方中间件
属于第三方模块,使用前需要先下载安装。
5. 错误处理中间件
//格式:在路由中
app.get('/list',(req,res,next)=>{
next(错误信息) //把错误交给错误处理中间件
});
eg:
//添加错误处理中间件,拦截所有路由中产生的错误
app.use((err,req,res,next)=>{
//err 所接收到的路由传递过来的错误信息
console.log(err);
res.status(500).send({code:500,msg:'服务器端错误!'}); //响应错误
});
三、MySQL模块
1. 使用步骤
(1)引入MySQL模块
const mysql = require('mysql');
(2)创建一个连接对象
const c = mysql.createConnection({
host:'127.0.0.1',
port:'3306',
user:'root',
password:'',
database:'tedu'
});
(3)执行SQL命令
c.query('select * from emp where ename=?',[str],(err,result)=>{
if(err) throw err;
console.log(result);
});
2. 连接池
创建的一批连接,可以被反复使用,用完后会归还。
(1)引入MySQL模块
const mysql = require('mysql');
(2)createPool( ) 创建连接池对象
const pool = mysql.createPool({
host:'127.0.0.1',
port:'3306',
user:'root',
password:'',
database:'tedu',
connectionLimit:15 //连接池数量
});
(3)query( ) 执行SQL命令
pool.query('select * from emp',(err,result)=>{
if (err) throw err;
console.log(result);
});
四、RESTful接口
接口是后端为前端提供的动态资源(对数据的增删改查),而RESTful则是一种接口设计规范。
1. URL
http://127.0.0.1:8080/v1/emps //多个资源
http://127.0.0.1:8080/v1/emps/3 //单个资源(v1版本号、emps 资源名称(复数形式)、3编号)
http://127.0.0.1:8080/v1/users/login //对资源的特殊操作例如登录
2. 请求方法
对资源的操作方式,包括 get(获取资源)、post(新建资源)、delete(删除资源)、put(修改资源)。
3. 过滤数据
eg:
http://127.0.0.1:8080/v1/products?price1=4000&price2=5000 //过滤一组价格区间的数据
http://127.0.0.1:8080/v1/products?pno=1&count=9 //通过分页过滤
4. 返回结果
格式为 JSON 对象:字符串形式的对象,属性名必须是双引号,属性值是字符串且必须用双引号,包含状态码(人为规定)、消息、数据。格式如下:
{
"code":200,
"msg":"登录成功"
}
{ "code":200,"msg":"登录成功","data":[ ] }
推荐接口工具: ApiPost
文章来源: majinjian.blog.csdn.net,作者:Developer 小马,版权归原作者所有,如需转载,请联系作者。
原文链接:majinjian.blog.csdn.net/article/details/119481637
- 点赞
- 收藏
- 关注作者
评论(0)