Node.js-9. express 框架

express 介绍

  • 是基于 Node.js 平台开发的 “web 开发框架” ,就是一个 node.js 模块
  • express的作用:它提供一系列强大的特性,帮助你创建各种 Web 和移动设备应用。
  • express 同时也是 Node.js 的一个模块
  • 让我们基于 Node.js 开发web应用程序更高效。

express 官方网站

express 基本使用

安装 express

  • npm 搜索,安装。按照文档一步一步进行
    1. 创建 package.json文件
    2. 安装 express 模块:npm install express

演示 Hello World 案例

  • 在 express 中,request 对象 和 response 对象一样使用,同时这两个对象还额外添加了其他的好用功能

  • res.send() 是 res.end()的扩展

  • 步骤总结:
    1、加载 express 模块
    2、创建 express 实例(一般叫 app )
    3、设计路由
    4、启动监听服务

  • 路由:请求路径(URL) + 请求方法(post、get、…)

  • 使用 express 框架模拟 Apache 服务器处理静态资源

    • 主要使用到的方法express.static('public')

      • express.static('public')的返回值就是一个函数,这个函数的作用就是根据请求,读取静态资源文件并响应给用户
      • 注意:static() 方法参数路径要写 绝对路径,不要写相对路径。相对路径还是相对执行node命令的路径
    • 主要使用到的方法 app.use()

      • use()方法的参数1表示"虚拟路径",参数2表示要开放的静态资源目录
    • 如何向客户端发送单个静态文件

      • res.sendFile() 方法
    • 托管静态资源时的两个注意点:

    // 问题一(提问、演示)、
    app.use(express.static('./public'));
    app.use(express.static('./file'));
    
     // 问题二(提问、演示)、
    app.use('/aaa', express.static('./public'));
    app.use('/bbb', express.static('./public'));
    

express 文档中关于各种设置路由的方法

express 中的中间件

  • 中间件(Middleware) 是一个函数,它可以访问请求对象(request object (req)), 响应对象(response object (res)), 和 web 应用中处于请求-响应循环流程中的中间件,一般被命名为 next 的变量。

  • 常规中间件(应用级中间件)的回调函数,一般有3个参数

    • req, res, next
    • 其中next()是一个函数,通过这个函数把执行流程交给下一个中间件
  • 可以挂在中间件的部分方法

    • app.use()
    • app.get()、app.post()、app.put()、app.delete()、…等各种请求方法
    • 注意:在挂载中间件时 next() 方法的重要性,不调用该方法无法执行到下一个中间件
  • 中间件的应用场景

    • 利用中间件实现记录日志功能
    • 利用中间件模拟body-parser功能

在 express 中如何使用模板引擎

  • 在 express 中, res对象是具有redner方法的,但是需要自己配置一个模板引擎
  • 在 express 中渲染单个文件,使用res.sendFile
  • res.render()要在设置好模板引擎后再使用

express 中的 request 对象的成员:

http://www.expressjs.com.cn/4x/api.html#req

express 中的 response 对象的成员:

http://www.expressjs.com.cn/4x/api.html#res

express 中的 ‘中间件’ 含义。

模板引擎后缀替换

  • app.engine(’.ejs’, require(‘ejs’).renderFile)
  • app.set(‘view engine’, ‘ejs’)

通过使用 express 框架改造 Hacker News 网站

  • 把 resources、views、list.json拷贝到该目录下,其他暂时不需要了
  • 创建 app.js
  • 创建 package.json
  • 安装 express
  • 提取 router.js 模块
  • 拷贝 handler.js 模块
  • handler.js 模块中获取 post 提交数据时,可以使用 body-parser 模块实现
    • npm 安装 body-parser
    • 在 express 中通过 app.use()挂载 body-parser 中间件,实现效果
  • 在 express 中无需 url 模块,直接可以通过 req.query获取查询字符串对象

1、ejs 模板引擎

  • ejs模板引擎介绍
  • 打开 npm 搜索 ejs
  • 打开 GitHub 的 ejs 地址,查看如何使用
  • 演示 ejs 模板引擎的使用

2、介绍在 express 中如何使用模板引擎

  • 在 express 中, res对象是具有redner方法的,但是需要自己配置一个模板引擎
  • 在 express 中渲染单个文件,使用res.sendFile
  • res.render()要在设置好模板引擎后再使用
  • npm install ejs --save
  • 通过 app.set(‘views’, ‘路径’); 和 app.set(‘view engine’, ‘模板引擎名称’);来配置模板引擎
  • 配置好后就可以通过 res.render(‘a.ejs’, {})来渲染模板了

3、模板引擎后缀替换、

4、完成 hacker news 网站使用 express 改造

5、body-parser 使用

  • npm install
  • 在模块中 require(‘body-parser’)
  • 在 express 中配置
  // parse application/x-www-form-urlencoded 
  app.use(bodyParser.urlencoded({ extended: false }))

  // parse application/json 
  app.use(bodyParser.json())
1. res.send() 方法

- 参数可以是字符串、Buffer对象、数组(json对象)、普通对象
- 通过调用该方法进行响应的时候,会自动添加一些响应头(Content-Type、Content-Length等)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凡小多

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值