Express介绍

167 阅读2分钟

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

  • 框架:是一个半成品,用来快速解决一类问题(框架有:bootstrao,lay-ui,express,vue,react)
  • 库:就是工具集(库有:zepto.js,jQuery,day.js,underscore,lodash,art-template,axios,echart......)

    对于node.js来说,Express是一个第三方模块,有丰富的API支持,强大而灵活的中间件特性,Express不对node.js已有的特性进行二次抽象,只是在它之上扩展了Web应用所需的基本功能.

    Express使用

    (1)express是一个第三方模块(在npm上可以下载),在使用它之前要先去下载它,在下载包之前要先创建项目,并通过npm init -y创建package.json文件.

    (2)下载express包本地安装 npm i express

    (3)在项目根目录下新建一个js文件,例如app.js,其中输入代码如下:

    // 1. 加载 Express
    const express = require('express')
    
    // 2. 调用 express() 得到一个 app
    //    类似于 http.createServer()
    const app = express()
    
    // 3. 设置请求对应的处理函数
    //    当客户端以 GET 方法请求 / 的时候就会调用第二个参数:请求处理函数
    app.get('/', (req, res) => {
      res.send('hello world')
    })
    
    // 4. 监听端口号,启动 Web 服务
    app.listen(3000, () => console.log('app listening on port 3000!'))
    

    说明:

    • app.get('/')相当于添加事件监听:当用户以get方式求"/"时,它后面的回调函数会执行,其回调函数中的req,res与前面所学http模块保持一致。
    • res.send()是exprss框架给res对象补充提供的方法(http模块中的res是没有这个方法的),用于结束本次请求。类似的还有res.json(), res.sendFile() 。
    • express 框架会增强req,res的功能

    托管静态资源-web服务器

    让用户直接访问静态资源是一个web服务器最基本的功能。

    忽略前缀

    // 加载 Express
    const express = require('express')
    
    // 1. 调用 express() 得到一个 app
    //    类似于 http.createServer()
    const app = express();
    
    // 2. 设置请求对应的处理函数,public为创建的文件夹名
    app.use(express.static('public'))
    
    
    // 3. 监听端口号,启动 Web 服务
    app.listen(3000, () => console.log('app listening on port 3000!'))
    

    此时,所有放在public下的内容可以直接访问,注意,此时在url中并不需要出现public这级目录。在public下新建index.html,可以直接访问到。

    限制前缀

    // 限制访问前缀
    app.use('/public', express.static('public'))
    

    这意味着想要访问public下的内容,必须要在请求url中加上/public