目录
  1. 1. Express
    1. 1.1. 安装
    2. 1.2. 基本使用
    3. 1.3. 基本路由
      1. 1.3.1. 在Express中获取表单GET数据请求体
      2. 1.3.2. 在Express中获取表单post数据请求体
      3. 1.3.3. body-parser
        1. 1.3.3.1. 安装
        2. 1.3.3.2. 配置
        3. 1.3.3.3. 使用
    4. 1.4. 路由API—Router
      1. 1.4.1. 使用
      2. 1.4.2. 使用
    5. 1.5. 静态服务
    6. 1.6. 在Express中配置使用art-template模板引擎
      1. 1.6.1. 安装
      2. 1.6.2. 配置
      3. 1.6.3. 使用
    7. 1.7. 重定向
快速上手Node.JS中的express

Express

安装

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

基本使用

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

app.get('/', (req, res) => res.send('Hello World!'))

app.listen(3000, () => console.log(`Example app listening on port 3000!`))

基本路由

路由器

  • 请求方法
  • 请求路径
  • 请求处理函数

get:

// 当以 GET 方法请求 / 的时候,执行对应的处理函数
app.get('/', (req, res) => res.send('Hello World! GET'))

post:

app.post('/', (req, res) => res.send('Hello World! POST'))

在Express中获取表单GET数据请求体

Express内置了一个API,可以直接通过req.query来获取

app.post('/sub',function(req, res){
var comment = req.query
comment.dateTime = time.format(new Date(), 'YY-MM-DD')
comments.push(comment)
// 重定向
res.redirect('/')
})

在Express中获取表单post数据请求体

在express官方没有内置获取表单Post请求体的API,在此需要使用一个第三方包:body-parser

body-parser

安装

npm install body-parser --save

配置

var express = require('express')
var bodyParser = require('body-parser')

var app = express()

// 配置 body-parser
// 只要加入这个配置,则在req请求对象上会多出来一个属性:body
// 则可以直接通过req.body来获取表单 POST请求的数据了
app.use(bodyParser.urlencoded({ extended: false }))

// parse application/json
app.use(bodyParser.json())

使用

app.post('/post',function(req, res){
var comment = req.body
comment.dateTime = time.format(new Date(), 'YY-MM-DD')
comments.push(comment)
// 重定向
res.redirect('/')
})

路由API—Router

Express 提供了一个更好的路由方式,专门用来包装路由

使用

router.js路由文件

// 1. 创建一个路由器
var router = express.Router()
// 2.把路由都挂在到Router路由容器中
router.get('/students/new', function(req, res){
res.render('new.html')
})
router.get('/students/edit', function(req, res){
})
// 3. 把router 导出
module.exports = router

app.js引用路由

// 应用路由文件
var router = require('./router')

// 挂在路由容器到 app 服务中
app.use(router)

使用

静态服务

当我们直接访问/public中的文件时候,是无法直接访问的,则需要express.static来进行释放文件,以来提供静态资源服务

// 1. 通过public目下访问,路径前必须要求是 /public/xxx 之下的文件
app.use('/public/', express.static('./public/'))

// 2. 释放public下的文件,访问不加 public 直接 /xxx
app.use(express.static('./public/'))

// 3. 使用/pub/ 给/public/ 取别名,则需通过 /pub/xxx 访问 public下的文件
app.use('/pub/',express.static('public'))
app.use('/pub/aa/',express.static('public')) // 同样可以这样起别名

在Express中配置使用art-template模板引擎

安装

npm install --save art-template
npm install --save express-art-template

配置

  • 配置使用 art-template 模板引擎
  • 第一个参数表示当以.art结尾的文件的时候,使用 art-template模板引擎
    • 需要渲染html文件时则可以将art修改为html
// 虽然外面这里不需要记载 art-template 但是也必须安装
// 原因就在于 express-art-template 依赖了 art-template
app.engine('art', require('express-art-template'));

使用

  • Express 为 Response 相应对象提供了一个方法:render
  • render中第一个参数不能写路径,默认会去项目中的 views 目录查找该模板文件,也就是说 Express 有一个约定:开发人员把所有的视图文件都放到 views 目录中
  • 如果想要修改默认的 views 目录,则可以app.set('views', render函数的默认路径)
app.get('/', function(req, res){
// express 默认去views 目录找index.html
res.render('index.html', {
title: '这是一个标题'
})
// res.render('404.html')
// res.render('admin/404.html') // 访问 views 下的admin下的404.html
})

如果希望修改默认的views视图渲染存储目录,可以:

// 修改views,修改render函数的默认路径
// app.set('views', render函数的默认路径)
app.set('views', '/show')

重定向

redirect方法允许网址的重定向,跳转到指定的url并且可以指定status,默认为302方式。

格式:res.redirect([status], url);

// 跳转到指定网址
res.redirect("https://mp.csdn.net/");
// 跳转到首页
res.redirect("/");
文章作者: Jachie Xie
文章链接: https://xjc5772.github.io/2020-06/05/%E5%AD%A6%E4%B9%A0/%E5%89%8D%E7%AB%AF%E5%AD%A6%E4%B9%A0/NodeJS/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8BNode.JS%E4%B8%AD%E7%9A%84express/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 XJC&Blog
打赏
  • 微信
  • 支付宝

评论