学完node.js部分后,我们来学习怎么搭建一个前端服务器吧!!
目录
第1章:Express简介
1.1 Express是什么
Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,它提供一系列强大的特性,帮助你快速创建各种 Web和移动设备应用。 简单来说Express就是运行在node中的用来搭建服务器的模块。
1.2 Express的使用
1.2.1 下载
npm i express --save // 安装express并添加到依赖项
1.2.2 第一个服务器
//引入express模块
var express = require('express')
//创建应用对象
var app = express()
//配置静态资源
app.use(express.static('public'))
//开启服务器,监听3000端口
app.listen(3000)
第2章:路由(Route)
2.1 Route是什么
路由是指如何定义应用的端点(URIs)以及如何响应客户端的请求。 路由是由一个 URI、HTTP请求(GET、POST等)和若干个句柄组成的。
2.2 Route的定义
我们可以将路由定义为三个部分:
第一部分:HTTP请求的方法(get或post)
第二部分:URI路径
第三部分: 回调函数
2.3 Route的实现
Express中提供了一系列函数,可以让我们很方便的实现路由:
app.<method>(path,callback)
语法解析:
method指的是HTTP请求方法,比如:
app.get()
app.post()
path指要通过回调函数来处理的URL地址
callback参数是应该处理该请求并把响应发回客户端的请求处理程序
2.4 Route的实例
//引入express
var express = require('express')
//创建应用对象
var app = express()
//配置路由
app.get('/index', function (request, response) {
console.log('路由index收到get请求')
response.send('这里是路由返回的信息,/hello收到了get请求')
})
app.post('/index', function (request, response) {
console.log('路由index收到post请求')
response.send('这里是路由返回的信息,/hello收到了post请求')
})
//启动服务器
app.listen(3000, function () {
console.log('服务器启动成功,监听3000端口')
})
2.5 Route的运行流程
当Express服务器接收到一个HTTP请求时,它会查找已经为适当的HTTP方法和路径定义的路由
如果找到一个,Request和Response对象会被创建,并被传递给路由的回调函数
我们便可以通过Request对象读取请求,通过Response对象返回响应
Express中还提供了all()方法,可以处理两种请求。
2.6 Request对象
2.6.1 Request对象是什么
Request对象是路由回调函数中的第一个参数,代表了用户发送给服务器的请求信息
通过Request对象可以读取用户发送的请求包括URL地址中的查询字符串中的参数,和post请求的请求体中的参数。
2.6.2 Request对象属性和方法
属性/方法 描述
request.query
获取get请求查询字符串的参数,拿到的是一个对象
request.params
获取get请求参数路由的参数,拿到的是一个对象
request.body
获取post请求体,拿到的是一个对象(要借助一个中间件)
request.get(xxxx)
获取请求头中指定key对应的value
2.7 Response对象
2.7.1Response对象是什么
Response对象是路由回调函数中的第二个参数,代表了服务器发送给用户的响应信息。
通过Response对象可以设置响应报文中的各个内容,包括响应头和响应体。
2.7.2 Response对象的属性和方法
属性/方法 描述
response.send()
给浏览器做出一个响应
response.end()
给浏览器做出一个响应(不会自动追加响应头)
response.download()
告诉浏览器下载一个文件
response.sendFile()
给浏览器发送一个文件
response.redirect()
重定向到一个新的地址(url)
response.set(header,value)
自定义响应头内容
response.get()
获取响应头指定key对应的value
res.status(code)
设置响应状态码
下一篇:Express基础学习(二)