用什么软件做购物网站,深圳网站定制公司,永川做网站,wordpress ajax 登录文章目录框架特性express的使用初始化项目#xff1a;下载框架模块#xff1a;测试代码#xff1a;总结以上代码#xff1a;请求处理的中间件概念#xff1a;中间件——app.use基本用法#xff1a;next的用法app.use中间件的应用路由的保护网站维护公告自定义404#xf…
文章目录框架特性express的使用初始化项目下载框架模块测试代码总结以上代码请求处理的中间件概念中间件——app.use基本用法next的用法app.use中间件的应用路由的保护网站维护公告自定义404当用户输入与路由不匹配网址时错误处理中间件同步错误处理总结上面代码异步错误在回调函数中使用next写在最后框架特性
提供了方便简洁的路由定义方式获取HTTP请求参数进行了简化处理对模板引擎支持程度高方便渲染动态HTML提供了中间件机制有效控制HTTP请求拥有大量第三方中间件对功能进行扩展
express的使用
初始化项目 npm init -y 下载框架模块 npm i express 测试代码
const express require(express)
const app express()
app.get(/, (req, res) {// res.send(你好Express!)//输出文本res.send({name:zss})//输出json格式对象
})
app.listen(3000, () {console.log(Server is running at http://127.0.0.1:3000)
})总结以上代码
引入express框架模块send 方法相较于 nodejs 原生的 end 方法更加强大 不同设置相应有的 content-tye此方法会自动根据返回的数据设置相应的响应头
请求处理的中间件 中间件就是以对方法可以接受客户端发来的请求可以对请求作出响应也可以将请求继续交给下一 个中间件继续处理登录就可以使用中间件进行拦截处理 概念 中间件主要由两部分组成中间件方法以及请求处理函数中间件方法由express提供负责拦截请求请求处理函数由开发人员提供负责处理请求其实路由就是中间件 app.get(/, (req, res) {res.send(h1hello,express/h1) // 输出html文本})//匹配以get方式请求的/路由中间件——app.use
这里以 app.use 中间件为例讲解中间件的用法
app.use 匹配所有请求方式和请求路径可以直接传入请求处理函数app.use 第一个参数可以传入请求地址代表无论什么请求方式只要请求的是这个地址就接收这 个请求
基本用法
const express require(express)
const app express()
app.use((req, res) {res.send(你不错!)
})
app.get(/, (req, res) {res.send(我是主页)
})
app.get(/new, (req, res) {res.send(我是添加)
})
app.listen(3000, () {console.log(Server is running at http://127.0.0.1:3000)
})app.use会接收所有传递方式中的所有路由 导致后面的路由不会继续匹配
next的用法
默认情况下如果前面的路由已经匹配上如果后面还有中间件则不会执行需要使用 next 才会 向后执行
app.use中间件的应用
路由的保护
客户端在访问需要登录的页面时可以先使用中间件判断用户登录状态用户如果未登 录则拦截请求直接响应禁止用户访问需要登录的页面
如果用户未登录 如果用户已经登录
网站维护公告
在所有路由的最上面定义接收所有请求的中间件直接为客户端作出响应网站正 在维护中
自定义404当用户输入与路由不匹配网址时
const express require(express)
const app express()app.get(/, (req, res) {res.send(我是主页)
})
app.get(/new, (req, res) {res.send(我是添加)
})//当用户访问地址与以上路由均不匹配时 进入下面的路由 因为下面会匹配任何路由
app.use((req, res, next) {res.status(404).send(你访问的地址不存在)
})app.listen(3000, () {console.log(Server is running at http://127.0.0.1:3000)
})错误处理中间件
程序中有两类错误
代码错误这个在开发调试阶段就可以解决掉运行时错误程序运行时才可能出现的错误如读取的文件不存在连接数据库时数据库服务没有 启动这类错误的发生与我们的代码没有关系
同步错误处理
同步错误发生后错误处理能够自动捕捉 下面手动的制造一个错误并抛出错误处理能够获取错误信息 总结上面代码
不仅仅局限于手动抛出的错误 错误中间件才能够捕获 还包括同步中的调用未定义的方法 含有语法错误的对象 解析json字符串的错误
异步错误
异步错误发生后错误处理中间件无法自动捕捉使用next执行错误处理
例如读取不存在的文件错误
在回调函数中使用next 写在最后 ✨原创不易还希望各位大佬支持一下\textcolor{blue}{原创不易还希望各位大佬支持一下}原创不易还希望各位大佬支持一下 点赞你的认可是我创作的动力\textcolor{green}{点赞你的认可是我创作的动力}点赞你的认可是我创作的动力 ⭐️ 收藏你的青睐是我努力的方向\textcolor{green}{收藏你的青睐是我努力的方向}收藏你的青睐是我努力的方向 ✏️ 评论你的意见是我进步的财富\textcolor{green}{评论你的意见是我进步的财富}评论你的意见是我进步的财富