当前位置: 首页 > news >正文

长沙旅游网站开发pc网站建设企业

长沙旅游网站开发,pc网站建设企业,本地使用宝塔安装wordpress,天津最好网站建设公司文章目录 Express框架1、初体验express2、什么是路由3、路由的使用3、获取请求参数4、电商项目商品详情场景配置路由占位符规则5、小练习#xff0c;根据id参数返回对应歌手信息6、express和原生http模块设置响应体的一些方法7、其他响应设置8、express中间件8.1、什么是中间件… 文章目录 Express框架1、初体验express2、什么是路由3、路由的使用3、获取请求参数4、电商项目商品详情场景配置路由占位符规则5、小练习根据id参数返回对应歌手信息6、express和原生http模块设置响应体的一些方法7、其他响应设置8、express中间件8.1、什么是中间件8.2、中间件的作用8.3、中间件的类型8.4、定义全局中间件8.5、定义路由中间件8.6、静态资源中间件 9、获取请求体数据10、防盗链的实现11、路由的模块化 Express框架 1、初体验express // 导入express包 const express require(express)// 创建应用对象 const app express()// 创建路由 app.get(/home, (req, res) {res.end(hello express) })// 启动服务监听端口 app.listen(3000, (){console.log(服务启动成功。。。) })2、什么是路由 官方定义路由确定了应用程序如何响应客户端对特定端点的请求 3、路由的使用 // 导入express包 const express require(express)// 创建应用对象 const app express()// 创建路由 app.get(/home, (req, res) {res.end(hello express) })// 创建路由 app.post(/login, (req, res) {res.end(login) })// 匹配全部 app.all(/all, (req, res) {res.end(all) })// 全都匹配不上就走这里 app.all(*, (req, res) {res.end(Not Found 404) })// 启动服务监听端口 app.listen(3000, (){console.log(服务启动成功。。。) })3、获取请求参数 const express require(express)// 创建应用对象 const app express()app.get(/request, (req, res) {// http模块方法console.log(原生获取url , req.url)console.log(原生获取请求方式 , req.method)console.log(原生获取http版本号 ,req.httpVersion)console.log(原生获取headers ,req.headers)// express 封装的方法console.log(express获取url , req.path)console.log(express获取请求参数 ,req.query);// 获取ip地址console.log(express获取ip地址 , req.ip);// 获取指定headers中的内容console.log(express获取指定header,req.get(host))res.setHeader(content-type, text/html;charsetutf-8)res.end(请求成功) })app.listen(3000, () {console.log(服务启动成功监听端口3000) })4、电商项目商品详情场景配置路由占位符规则 // 导入express模块 const express require(express) // 创建应用对象 const app express()// 创建路由 // :id占位符所有这种格式的请求都会进入这里 app.get(/:id.html, (req, res) {// params上存储所有的请求参数id就是路由中的id字段名必须一致才能取出来console.log(req.params.id)res.setHeader(content-type, text/html;charsetutf-8)res.end(商品详情) })// 启动服务 app.listen(3000, () {console.log(服务启动成功监听端口3000) })5、小练习根据id参数返回对应歌手信息 const express require(express)const app express()const singers [{name: 周杰伦,id: 1},{name: 许嵩,id: 2},{name: 汪苏泷,id: 3} ] // 根据id返回指定数据 app.get(/:id.html, (req, res) {const data singers.filter(item item.id req.params.id)console.log(data)if (data.length 0) {res.statusCode 404res.end(h1404 Not Found/h1)return}res.setHeader(content-type, text/html;charsetutf-8)res.end(JSON.stringify(data[0])) })app.listen(3000, () {console.log(服务启动成功) })6、express和原生http模块设置响应体的一些方法 const express require(express)const app express()app.get(/response, (req, res) {// 原生方法// 修改状态码res.statusCode 404res.statusMessage abcd// 设置响应头res.setHeader(111, 222)// 设置响应体res.write(hello express)res.end(response)// express 方法res.status(500)res.set(aaa,bbb)res.send(你好 我是send) // 使用send会自动配置响应头Content-Type:text/html; charsetutf-8中文不乱码res.status(500).set(aaa,bbb).send(你好 我是send) // 可以链式调用 })app.listen(3000, () {console.log(服务启动成功) })7、其他响应设置 const express require(express)const app express()app.get(/other, (req, res) {// 重定向res.redirect(http://www.baidu.com)// 下载res.download(__dirname /index.js)// JSON响应res.json({name:你好})// 响应文件内容res.sendFile(__dirname ./text.html) })app.listen(3000, () {console.log(服务启动成功) })8、express中间件 8.1、什么是中间件 中间件本质是一个回调函数 中间件函数可以像路由回调一样访问请求对象request响应对象response 8.2、中间件的作用 中间件的作用就是使用函数封装公共操作简化代码 8.3、中间件的类型 全局中间件路由中间件 8.4、定义全局中间件 // 导入 const express require(express) const fs require(fs) const path require(path)const app express()// 声明中间件函数,共有三个参数请求报文。响应报文。和next函数 // next()函数如果后续有代码执行必须调用。 function recordMiddleware(req, res, next) {// 获取url和IP地址let { url, ip } reqfs.appendFileSync(path.resolve(__dirname, ./access.log), ip${ip}访问了${url}\r\n)next() }// 使用中间件函数 app.use(recordMiddleware)app.get(/home, (req, res) {res.send(前台首页) })app.get(/admin, (req, res) {res.send(后台首页) })app.all(*, (req, res) {res.send(h1404 Not Found/h1) })app.listen(3000, () {console.log(服务启动成功) })8.5、定义路由中间件 const express require(express)// 创建应用对象 const app express()// 定义全局路由中间价函数 const checkCodeMiddleware (req, res, next) {let { code } req.queryif (code ! 521) {res.send(暗号错误)return}next() }// 可以全局注册也可以局部使用直接在路由中调用 app.get(/home, checkCodeMiddleware, (req, res) {res.send(前台页面) })app.get(/admin, (req, res) {res.send(后台页面) })app.listen(3000, () {console.log(服务启动成功...) })8.6、静态资源中间件 // 静态资源中间件设置 public就是静态资源目录。配置以后不管任何文件格式这个方法都会给我们配置好mime类型。 app.use(express.static(__dirname /public))9、获取请求体数据 要使用到一个中间件body-parser这个中间件有两个方法 先安装中间件npm i body-parser const bodyParser require(body-parser) // 解析JSON格式的请求体的中间件 const jsonParser bodyParser.json() // 解析 querystring 格式请求体的中间件 const urlencodedParser bodyParser.urlencoded({extended:false})app.post(/login, urlencodedParser, (req,res){// 调用这个中间件以后会给req中添加一个body就是请求参数const {username} req.bodyres.send(username) })10、防盗链的实现 防盗链就是指一个网站的一些静态资源通过判断请求头中的referer属性是否为本服务ip或者域名从而阻止一些外部系统访问资源。 const express require(express)const app express()// 静态资源中间价设置 app.use(express.static(__dirname /public))// 防盗链的原理主要是判断请求头中的referer 是否为自己服务的地址 const staticMiddleware (req, res, next) {// 检测请求头中的referer是否为 127.0.0.1// 获取refererlet referer req.get(referer)if (referer) {// 序列化refererlet url new URL(referer)let hostname url.hostnameconsole.log(hostname)if (hostname ! 127.0.0.1) {// 响应404res.status(404).send(h1404 Not Found/h1)}}next() }app.use(staticMiddleware)app.get(/login, (req, res) {res.send(登录) })app.listen(3000, () {console.log(服务启动成功...) })11、路由的模块化 创建一个routers目录。创建homeRouters.js文件存放路由 const express require(express) // 创建路由对象 const router express.Router()router.get(/admin, (req, res) {res.send(后台管理) })// 暴露router module.exports router 主要文件引入routers里面的文件使用app.use挂载到app上 const express require(express) const homeRouters require(./routers/home.js) const adminRouters require(./routers/admin.js)const app express()app.use(homeRouters) app.use(adminRouters)app.all(*, (req, res) {res.send(h1404 Not Found/h1) })app.listen(3000, () {console.log(服务启动成功...) })全部文章 从0到1学习node.jsfs模块 从0到1学习node.jspath模块以及HTTP协议 从0到1学习node.jshttp模块 从0到1学习node.jsnpm
http://www.hkea.cn/news/14269031/

相关文章:

  • 营销型企业网站类型wordpress 菜单管理系统
  • 一级做a免费体验区不用下载网站怎样做农产品交易平台网站
  • 温州 做网站商务网站规划与建设心得
  • 访问中国建设银行官方网站工作手机微信管理系统
  • 手机网站跟pc网站有什么不同百度图片搜索入口
  • wordpress网站搬建立大型网站
  • 局域网 手机网站建设设计一个个人网站的基本步骤
  • 建设部网站投标保证金网站设计师岗位职责
  • 深圳住房建设厅网站首页承建网站
  • 网站新闻置顶怎么做wordpress页面如何显示分类目录
  • 哪个网站做律师推广广州哪里有外贸网站
  • 微信手机网站源码开发公司各部门职责
  • 杭州品牌网站设计制作公司wordpress后台教程网
  • 海西州公司网站建设服装设计手绘
  • iis发布网站页面出问题怎么去推广一个app
  • wordpress 后台加入链接后_网站显示是标签_不是链接福建龙岩昨天发生的新闻
  • 宁乡网站开发公司推荐网站开发与建设课程
  • 可以做动画的网站都有哪些软件下载网站建站商务平台
  • 题库网站建设视频 播放网站怎么做的
  • app和网站哪个有优势商城网站建设价位
  • python django 做 网站中山网站制
  • 5ucms怎样做网站自适应莱芜有需要制作网站的公司吗
  • 郑州百度网站推广黄志达设计公司官网
  • 哪些作弊网站网站开发女
  • 电子商务网站的开发方式有哪三种女子医院网站设计怎么做
  • 网站建设流程表百度站长工具
  • 5118站长工具箱it培训学校it培训机构
  • 网站建设状态栏网站设计与建设的
  • asp网站生成静态柳州企业网站制作哪家好
  • 制作网站的知识wordpress搬家后打不开网页