1️⃣ Express 团队写了一款更新的 Koa 还不太成熟待以后学习
1️⃣ Express
Express 是一个基于 Node.js 平台的极简、灵活的 web 应用开发框架,它提供一系列强大的特性,帮助你快速创建各种 Web 和移动设备应用。
简单来说Express就是运行在node中的用来搭建服务器的模块。
1️⃣ Express的使用
2️⃣ 下载
npm i express --save 安装 express 并添加到依赖项
2️⃣ 使用
// 引入expressconst express = require('express')// 1.创建app服务对象const app = express()// 禁止服务器返回X-Powered-Byapp.disable('x-powered-by')// 2.配置路由 - 对请求的url进行分类,服务器根据分类决定交给谁去处理。// (1).在Node.js课程中,我们所有说的“路由”,默认都是指【后端路由】// (2).路由可以理解为:一组一组key-value的组合,key:请求方式 + URI路径 , value:回调函数// (3).根据路由定义的顺序(写代码的顺序),依次定义好路由,随后放入一个类似数组的结构,当有请求时,依次取出匹配。若匹配成功,不再继续匹配了。// (4).该URL:http://locahost:3000/one 中 one,叫什么? 1.URI名字 2.虚拟路径名字// 根路由 - getapp.get('/', function (request, response) {console.log(request.query) // 获取 key=value...response.send('使用GET请求')})// 根路由 - postapp.post('/', function (request, response) {response.send('使用post请求')})// 一级路由app.get('/one', function (request, response) {response.send('一级路由')})// 二级路由app.get('/one/one', function (request, response) {response.send('二级路由')})//参数路由---可以动态接收参数app.get('/one/:id',function (request,response) {console.log(request.params);let {id} = request.paramsresponse.send(`变化的参数${id}`)})// 3.指定服务器运行的端口号(绑定端口监听)app.listen(3000, function (err) {if (!err) console.log('服务器启动成功了')else console.log(err)})
1️⃣ 路由 - API
2️⃣ request对象:
request.query:获取查询字符串参数(query参数),拿到的是一个对象
request.params:获取get请求参数路由的参数,拿到的是一个对象
request.body: 获取post请求体参数,拿到的是一个对象(不可以直接用,要借助一个中间件)
request.get(xxxx):获取请求头中指定key对应的value。
2️⃣ response对象:
response.send():给浏览器做出一个响应
response.end():给浏览器做出一个响应(不会自动追加响应头)
response.download():告诉浏览器下载一个文件,可以传递相对路径
response.sendFile():给浏览器发送一个文件 - 备注:必须传递绝对路径
response.redirect():重定向到一个新的地址(url)
response.set(key,value):自定义响应头内容
response.get(key):获取响应头指定key对应的value 很少使用
response.status(code):设置响应状态码
什么叫做服务器给浏览器响应了?
1. 服务器给浏览器一段文字2. 服务器给了浏览器一个图片3. 服务器给了浏览器一个视频4. 服务器告诉浏览器下载一个文件5. 服务器告诉浏览器重定向
备注:多个响应以response.send为主
1️⃣ 路由器
// 引入 Router 构造函数const {Router} = require('express')// 创建一个 Router 实例(路由器就是一个小型的app)let router = new Router()// 引入 path 模块 - Node中内置的一个专门用于解决路径问题的库let {resolve} = require('path')// 路由router.get('/login',(req,res)=>{let url = resolve(__dirname,'../public/login.html')res.sendFile(url)})// 暴露语法module.exports = function () {return router}// 引入依赖文件const UIRouter = require('./router/UIRouter')//使用UIRouterapp.use(UIRouter())
1️⃣ Express 获取参数
req.params //获取路由信息,例如: /user/:id
例如:127.0.0.1:3000/index,这种情况下,我们为了得到index,我们可以通过使用req.params得到,通过这种方法我们就可以很好的处理Node中的路由处理问题,同时利用这点可以非常方便的实现MVC模式;(注:默认为{})
req.query //get 方法的获取参数,例如:?id=12
例如:127.0.0.1:3000/index?id=12,这种情况下,这种方式是获取客户端get方式传递过来的值,通过使用req.query.id就可以获得(注:默认为{})
req.body //post方法的获取参数,例如:id=
例如:127.0.0.1:300/index,然后post了一个id=2的值,这种方式是获取客户端post过来的数据,可以通过req.body.id获取
1️⃣ express-generator快速创建应用(后台)骨架
2️⃣ 安装
npm install express-generator -g
2️⃣ 运行帮助命令
2️⃣ 创建一个空文件夹
在文件夹里运行
1. `express -e server` 文件夹里就会多出来 server 文件

2️⃣ 生产的项目目录

