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

node 第十三天 express初见

  1. express概念

Fast, unopinionated, minimalist web framework for Node.js
快速、独立、极简的 Node.js Web 框架。

  1. express相当于前端的jquery, 在不更改不侵入原生node的基础上封装了大量易用且实用的服务端api, express框架的封装原理就是前面第十天我们自己封装的简易服务器, 不过express做的抽象要比我们自己封装服务器多得多
  2. 使用 Express 应用生成器 这个可以比作做前端的项目初始化脚手架比如vue-cli vite
1.
npm install -g express-generator 
安装生成器
2.
express --view=pug myapp 
生成应用, 一些404页面, 静态资源目录帮我们做好了, 使用 handlebars 作为模板引擎, 关于handlebars其实是一个非常简单的模板引擎
感兴趣可以去查阅相关资料
  1. 基础api介绍
//路径匹配
//1.匹配 /abcd
app.use('/abcd', (req, res, next) => {console.log('/abcd');next();
});
//2.匹配 /abcd /abd
app.use('/abc?d', (req, res, next) => {console.log('/abc?d');next();
});
//3.匹配 /abcd /abbcd /abbbbbbcd
app.use('/ab+cd', (req, res, next) => {console.log('/ab+cd');next();
});
//4.匹配 /abcd /abxcd /abxxxxxcd
app.use('/ab*cd', (req, res, next) => {console.log('/ab*cd');next();
});
//5.匹配 /abcd /ad
app.use('/a(bc)?d', (req, res, next) => {console.log('/a(bc)?d');next();
});
//6.正则匹配 /abc开头的路径 或 /xyz开头的路径
app.use(/\/abc|\/xyz/, (req, res, next) => {console.log('正则匹配');next();
});
//7.数组匹配 /abc /xyz 开头的路径
app.use(['/abc', '/xyz'], (req, res, next) => {console.log('数组匹配');next();
});
app.use(/.*/, (req, res, next) => {res.json({ over: true });
});//一些输出
app.use('/login/:path/:name', (req, res, next) => {console.log(req.baseUrl, 'baseUrl');console.log(req.body, 'body');console.log(req.cookies, 'cookie');console.log(req.fresh, '客户端是否有缓存');console.log(req.hostname, 'client hostname');console.log(req.ip, 'client ip');console.log(req.method, 'method');console.log(req.path, 'path');console.log(req.params, 'params');console.log(req.get('Content-Type'), 'header["content-type"]');console.log(req.is('json') === 'json', 'req.header["content-type"] is json');console.log('over ! ! !');res.json({ msg: 'please login' });next();
});
  1. 工欲善其事,必先利其器, 在调试服务器接口的时候可以使用postman等工具, 比在浏览器调试方便
    虽然通篇说的后端都是web服务器, 但其实, 在http协议或者其它协议的前提下, 后端的接口不只是能够服务web, 还能服务app 嵌入式等
    postman相比apipost更适合开发人员做一点简单的测试, 更轻量好用
    界面如下, 开箱即用, 需要汉化可以去github上拿 连接
    postman
http://www.lryc.cn/news/211265.html

相关文章:

  • Python selenium模块简介
  • DIY相机(一)libcamera库
  • PHP简单实现预定义钩子和自定义钩子
  • 笔记本电脑的摄像头找不到黑屏解决办法
  • 【Git】HEAD detached from xxx 问题及解决方案
  • Cannot connect to the Docker
  • 校园物业报修小程序开发笔记一
  • 用户登录前后端开发(一个简单完整的小项目)——SpringBoot与session验证(带前后端源码)全方位全流程超详细教程
  • FFmpeg5.1.3编译动态库踩坑之旅(基于Linux虚拟机)
  • 【语义分割】语义分割概念及算法介绍
  • 基于RK3568高性价比全国产EMS储能解决方案(一)概述
  • 3 Go的基础语法
  • Redis之Lua脚本讲解
  • redis archive github
  • 3台Centos7快速部署Kafka集群
  • 最小栈(C++解法)
  • Python 算法高级篇:堆排序的优化与应用
  • 视频下载软件 Downie4 mac中文介绍
  • 计算机操作系统重点概念整理-第一章 计算机系统概述【期末复习|考研复习】
  • 树莓派基金会近日发布了新版基于 Debian 的树莓派操作系统
  • Web项目如何做单元测试
  • MySQL主从复制(基于GTID--事务ID方式)
  • 3.72 Command Buffer及URP概述
  • 分布式理论和分布式锁知识点总结
  • IOC课程整理-17 Spring事件
  • 大数据Flink(一百零五):SQL性能调优
  • ESP8266,手机与电脑之间的TCP通讯
  • vue的数据监听是如何实现的?
  • 埋点日志解决方案——Golang+Gin+Sarama VS Java+SpringCloudGateway+ReactorKafka
  • LeetCode 541 反转字符串 II 简单