node笔记05——Nodejs学习之Express中间件与接口的编写,GET和POST接口的编写和案例演示。

认识express

express是基于Node.js平台的web开发框架

作用和Node.js内置的http模块类似,是专门用来创建Web服务器的。

本质上Express就是一个npm的第三方包提供了快速创建Web服务器的便捷方法。

中文官网:expressjs.com.cn

express的作用:快速方便的创建 Web网站服务器和 API 接口服务器

express的基本使用

一、下载express包 npm i express@4.17.1

二、创建基本的web服务器

// 导入express
const express = require('express')

// 创建web服务器
const app = express()

// 启动web服务器
app.listen(80,()=>{
   
    console.log('express server running at http://127.0.0.1')
})

监听 GET、POST 请求

1、get请求一般用来请求获取数据、post请求一般作为发送数据到后台,传递数据,创建数据

2、get请求也可以传参到后台,但是传递的参数则显示在地址栏,安全性低,且参数的长度也有限制(2048字符)、 post请求则是将传递的参数放在request body中,不会在地址栏显示,安全性比get请求高,参数没有长度限制

3、get请求刷新浏览器或者回退没有影响、post请求则会重新请求一遍

4、get请求可以被缓存,也会保留在浏览器的历史记录中、post请求不会被缓存,也不好保留在浏览器的历史记录中

5、get请求通常是通过url地址请求、post常见的则是form表单请求


参数一、客户端请求的URL地址 参数二、请求队形的处理函数

req 请求对象 res 响应对象

通过 app.post( )方法监听客户端POST请求。

通过 app.get( )方法可以监听客户端的GET请求。

把内容响应给客户端

通过 res.send( )方法,可以把处理好的内容发送给客户端

// 监听客户的 GET 和 POST 请求,并向客户端响应具体内容
app.get('/user',(req,res)=>{
   
    // 调用res.send方法向客户端响应一个JSON对象
    res.send( {
   name: 'zhangsan',age: 20, gender: '男'})
})
app.post('/user',(req,res)=>{
   
    // 调用res.send向客户端响应一个文本字符串
    res.send('请求成功')
})

获取 URL 中携带的查询参数

通过 req.query 对象可以访问到客户端通过查询字符串的形式,发送到服务器的参数

app.get('/',(req,res)=>{
   
    // 通过 req.query 可以获取到客户端发送过来的查询参数
    // 默认情况下req.query是空对象
    console.log(req.query)
    res.send(req.query)
})

获取URL中的动态参数

通过 req.params 对象可以访问到URL中通过 匹配到的动态参数

// 这里的 :id是一个动态的参数
app.get('/user/:id',(req,res)=>{
   
    // req.params 是动态匹配到的 URL 参数,默认也是一个空对象
    console.log(req.params)
    res.send(req.params)
})

向 http://127.0.0.1/user/ABCD发送请求后得到响应:

{
   
	"id": "ABCD"
}

express.static 托管静态资源

express.static( )方法可以方便的创建一个静态资源服务器。 通过如下代码可以将public目录下的文件对外开放

app.use(express.static('public'))

注意:存放静态文件的目录名不会出现在URL中

**想要托管多个静态资源目录,则多次调佣express.static( )即可

const express = require('express')
const app = express()

// 调用 express.static( ) 方法快速对外提供静态资源
// 传入文件目录位置
app.use(express.static('./clock'))
app.use(express.static('./files'))

// 启动服务
app.listen(80,()=>{
   
    console.log('express server running at http://127.0.0.1')
})

静态资源访问路径之前挂载前缀

app.use('/abc',express.static('./files')) :只需要在express.static 前面添加一个前缀即可

学习nodemon工具

该工具可以监听Node.js项目的代码,如果项目的代码发生了修改,该工具会自动重启项目,更方便开发和调试。

安装nodemon npm install -g nodmon

安装nodemon工具后,启动项目的方法:nodemon app.js

Express路由

路由的概念:就是映射关系。在express中路由指的是客户端的请求与服务器处理函数之间的映射关系

express中的路子分三部分组成

  • 请求的类型(METHOD):GET或者POST
  • 请求的地址PATH
  • 处理函数HANDLER

app.METHOD(PATH,HANDLER)

一个简单的路由的例子

app.get('/',function(req,res){
   
	res.send('hello,world')
})
app.post('/',(req,res)=>{
   
	res.send('got a POST request')
})

路由的匹配过程

每一个请求到达服务器都需要先经过路由的匹配,匹配成功只会才会调用对应的处理函数。

会按照路由的顺序进行匹配。

如果请求类型和请求的URL同事匹配Express才会将这次请求转交给对应的function进行处理。

模块化路由

Express不建议将路由直接挂载到app上。为了方便对路由进行模块化的管理,一般将路由抽离为单独的模块

一、创建路由模块对应的 .js 文件

二、调用 **express.Router( )**创建路由对象

三、向路由对象上挂载具体的路由

四、使用 module.exports向外共享路由对象

五、使用 app.use( )函数注册路由模块

创建路由模块

// 这是一个路由模块
//1、导入express
const express = require('express')

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值