Node.js(三)路由器、中间件、MySQL模块、RESTful接口

简介: 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

47582c0b67044616a01922cc6fee4199.png

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
9月前
|
JavaScript 前端开发
在Node.js中,如何合理使用模块来避免全局变量的问题?
在Node.js中,如何合理使用模块来避免全局变量的问题?
331 71
|
7月前
|
SQL 存储 关系型数据库
MySQL功能模块探秘:数据库世界的奇妙之旅
]带你轻松愉快地探索MySQL 8.4.5的核心功能模块,从SQL引擎到存储引擎,从复制机制到插件系统,让你在欢声笑语中掌握数据库的精髓!
222 26
|
人工智能 JavaScript 关系型数据库
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
460 14
【02】Java+若依+vue.js技术栈实现钱包积分管理系统项目-商业级电玩城积分系统商业项目实战-ui设计图figmaUI设计准备-figma汉化插件-mysql数据库设计-优雅草卓伊凡商业项目实战
|
JSON 缓存 JavaScript
深入浅出:使用Node.js构建RESTful API
在这个数字时代,API已成为软件开发的基石之一。本文旨在引导初学者通过Node.js和Express框架快速搭建一个功能完备的RESTful API。我们将从零开始,逐步深入,不仅涉及代码编写,还包括设计原则、最佳实践及调试技巧。无论你是初探后端开发,还是希望扩展你的技术栈,这篇文章都将是你的理想指南。
|
JSON JavaScript 前端开发
深入浅出Node.js:从零开始构建RESTful API
在数字化时代的浪潮中,后端开发作为连接用户与数据的桥梁,扮演着至关重要的角色。本文将引导您步入Node.js的奇妙世界,通过实践操作,掌握如何使用这一强大的JavaScript运行时环境构建高效、可扩展的RESTful API。我们将一同探索Express框架的使用,学习如何设计API端点,处理数据请求,并实现身份验证机制,最终部署我们的成果到云服务器上。无论您是初学者还是有一定基础的开发者,这篇文章都将为您打开一扇通往后端开发深层知识的大门。
336 12
|
Web App开发 JSON JavaScript
Node.js 中的中间件机制与 Express 应用
Node.js 中的中间件机制与 Express 应用
|
JavaScript NoSQL API
深入浅出Node.js:从零开始构建RESTful API
在数字化时代的浪潮中,后端开发如同一座灯塔,指引着数据的海洋。本文将带你航行在Node.js的海域,探索如何从一张白纸到完成一个功能完备的RESTful API。我们将一起学习如何搭建开发环境、设计API结构、处理数据请求与响应,以及实现数据库交互。准备好了吗?启航吧!
|
JSON JavaScript 前端开发
使用JavaScript和Node.js构建简单的RESTful API
使用JavaScript和Node.js构建简单的RESTful API
|
JSON JavaScript API
深入浅出Node.js:从零开始构建RESTful API
【10月更文挑战第39天】 在数字化时代的浪潮中,API(应用程序编程接口)已成为连接不同软件应用的桥梁。本文将带领读者从零基础出发,逐步深入Node.js的世界,最终实现一个功能完备的RESTful API。通过实践,我们将探索如何利用Node.js的异步特性和强大的生态系统来构建高效、可扩展的服务。准备好迎接代码和概念的碰撞,一起解锁后端开发的新篇章。
|
JavaScript 安全 中间件
深入浅出Node.js中间件机制
【10月更文挑战第36天】在探索Node.js的奥秘之旅中,中间件的概念如同魔法一般,它让复杂的请求处理变得优雅而高效。本文将带你领略这一机制的魅力,从概念到实践,一步步揭示如何利用中间件简化和增强你的应用。

推荐镜像

更多