8. Nodejs之Express(上)

1. 简介

Express 是基于 Node.js 平台,快速、开放、极简的 Web 开发框架。

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

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

Express 的中文官网: http://www.expressjs.com.cn/

Express之于http包就相当于JQuery之于Web API

用途:

  • Web 网站服务器:专门对外提供 Web 网页资源的服务器。
  • API 接口服务器:专门对外提供 API 接口的服务器。

2.安装

  1. 指令
npm i express@4.17.1
  1. 创建基本的Web服务器
import express from 'express'

const app=new express()

app.listen(80,()=>{
    console.log("server is running at 127.0.0.1:80")
})

3.使用方法

  1. 通过app.get()/app.post()方法,可以监听客户端的GET/POST请求,具体语法格式如下:
//4.监听客户端的get和post请求,并向客户端响应具体内容
app.get('/user',(req,res)=>{
    res.send({"wo":"ni","fasfaf":"121","sex":"nan"})
})

app.post('/user',(req,res)=>{
    res.send("您发送了一个post请求")
})
  1. 获取URL中携带的查询参数
    通过 req.query 对象,可以访问到客户端通过查询字符串的形式,发送到服务器的参数:
app.get('/',(req,res)=>{
    //req.query 默认是是一个空对象
    // 客户端使用 ?name=zs&age=20 这种查询字符串形式,发送到服务器的参数
    //可以通过 req.query 对象访问到
    console.log(req.query)
    res.send(req.query)
})
  1. 获取URL中的动态参数
    通过 req.params 对象,可以访问到 URL 中,通过 : 匹配到的动态参数:
//这里的id是一个动态参数
app.get('/user/:id',(req,res)=>{
    //req.params 默认是一个空对象
    //例如,访问 http://127.0.0.1/user/奥外脑
    //里面存放 通过:动态匹配到的参数值
    console.log(req.params)
    res.send(req.params)
})
  1. express.static()
    express 提供了一个非常好用的函数,叫做 express.static(),通过它,我们可以非常方便地创建一个静态资源服务器,
    例如,通过如下代码就可以将 public 目录下的图片、CSS 文件、JavaScript 文件对外开放访问了:
const app=express()
app.use(express.static('./clock'))

4. 小工具-Nodemon

在编写调试 Node.js 项目的时候,如果修改了项目的代码,则需要频繁的手动 close 掉,然后再重新启动,非常繁琐。
现在,我们可以使用 nodemon(https://www.npmjs.com/package/nodemon) 这个工具,它能够监听项目文件的变动,当代码被修改后,nodemon 会自动帮我们重启项目,极大方便了开发和调试。

  • 启动命令的变更 : node **.js ⇒ nodemon **.js
  • 当监听到修改的时候,自动帮你重启项目

5. Express 路由

  • 广义上讲 路由就是映射关系
  • 在Express中,路由指的是客户端的请求与服务器处理函数之间的映射关系
  1. 格式如下
app.METHOD(PATH,HANDLER)
  1. 路由的匹配过程
  1. 每当一个请求到达服务器之后,需要先经过路由的匹配,只有匹配成功之后,才会调用对应的处理函数。
  2. 在匹配时,会按照路由的顺序进行匹配,如果请求类型和请求的 URL 同时匹配成功,则 Express 会将这次请求,转交给对应的function函数进行处理。

nodejs express get 超时设置 nodejs中的express_前端

  1. 模块化路由
    为了方便对路由进行模块化的管理,Express 不建议将路由直接挂载到 app 上,而是推荐将路由抽离为单独的模块。将路由抽离为单独模块的步骤如下:
  • 创建路由模块对应的 .js 文件
  • 调用 express.Router() 函数创建路由对象
  • 向路由对象上挂载具体的路由
  • 使用 module.exports 向外共享路由对象
  • 使用 app.use() 函数注册路由模块

nodejs express get 超时设置 nodejs中的express_css_02

  1. 注册路由模块

其中app.use()函数的作用,就是来注册全局中间件的

  1. 为路由模块增加访问前缀
app.use('/***',userRouter)