Express

作者: 马佳乐 | 来源:发表于2022-07-18 20:20 被阅读0次

    什么是Express

    Express是基于Node.js 平台,快速、开放、极简的 Web开发框架。 Express
    Express 的作用和Node.js内置的 http模块类似,是专门用来创建Web 服务器的。)

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

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

    为什么要用Express创建Web服务器

    http内置模块用起来很复杂,开发效率低; Express,是基于内置的 http模块进一步封装出来的,能够极大的提高开发效率。

    Express能做什么

    对于前端程序员来说,最常见的两种服务器,分别是:

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

    使用Express,我们可以方便、快速的创建Web网站的服务器或 API接口的服务器。

    Express的基本使用

    安装

    npm i express@4.17.1
    

    创建基本的web服务器

    //导入 express
    const express = require('express')
    //创建web服务器
    const app = express()
    //监听客户端的 GET 和 POST 请求,并向客户端响应具体的内容
    app.get('/user',(req,res)=>{
        //调用express提供的res.send()方法,向客户端响应一个JSON对象
        res.send({name:'zs',age:'20',gender:'男'})
    })
    app.post('/user',(req,res)=>{
        //调用express提供的res.send()方法,向客户端响应一个字符串文本
        res.send('请求成功')
    })
    //调用app.listen(端口号,启动成功后的回调函数),启动web服务器
    app.listen(80,()=>{
        console.log('express server running at http://127.0.0.1')
    })
    

    获取URL中携带的查询参数

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

    app.get('/',(req,res)=>{
        // req.query 默认是一个空对象
        //客户端使用 ?name=zs&age=20 这种查询字符串的形式,发送到服务器的参数,
        //可通过 req.query 对象访问到。如:req.query.name
        console.log(req.query)
        res.send(req.query)
    })
    

    获取URL中的动态参数

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

    app.get('/user/:id:/name',(req,res)=>{
        //req.params 默认是一个空对象
        //里面存放着通过 : 动态匹配到的参数值
        //可多个参数
        console.log(req.params)
    })
    

    托管静态资源

    express.static()
    通过该函数,可以非常方便地创建一个静态资源服务器
    例如,通过如下代码可以将public目录下的图片、CSS文件、JavaScript 等文件对外开放访问了:

    app.use(express.static('public'))
    
    http://localhost:3000/images/bg.jpg
    http://localhost:3000/css/style.css
    http://localhost:3000/js/login.js
    

    注意:Express在指定的静态目录中查找文件,并对外提供资源的访问路径。因此,存放静态文件的目录名不会出现在URL中

    托管多个静态资源目录

    如果要托管多个静态资源目录,多次调用express.static()函数即可

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

    访问静态资源文件时,express.static()函数会根据目录的添加顺序查找所需的文件。如在前面目录找到查找的文件,不会再去后面目录查找。

    挂载路径前缀

    如果希望在托管的静态资源访问路径之前,挂载路径前缀,则可以使用如下的方式:

    app.use('public',express.static('public'))
    //路径前缀也可任意指定
    app.use('/abc',express.static('public'))
    

    相关文章

      网友评论

        本文标题:Express

        本文链接:https://www.haomeiwen.com/subject/ymmdirtx.html