前端工程化:express服务端开发
目录
- 1、express基本使用
- 1. 安装依赖
- 2. 创建服务
- 3. 启动服务
- 2、express中间件和异常
- 1. 中间件分3种
- 2. 异常捕获有3种
- 3、https服务和静态服务
- 1. https服务
- 2. 静态服务
1、express基本使用
1. 安装依赖
npm i -S express
2. 创建服务
// 创建express服务分三步// 1. 创建实例化服务
const express = require('express');
const app = express();// 2. 拦截路由
app.get('/',function(req,res){res.send('<html><body><div style="color:red">111</div></body></html>')
})// 3. 启动实例化服务
const port = 8080;
app.listen(port, function(){console.log('------服务启动成功');
})
3. 启动服务
node app.js
2、express中间件和异常
1. 中间件分3种
- 全局中间件:第一个参数是回调函数时,则针对所有请求生效
- 路由中间件:第一个参数是匹配路由,第二个参数为回调函数
- 异常中间件:回调函数包含四个参数
2. 异常捕获有3种
- 异常中间件:回调函数包含四个参数
- 全局异常捕获
- 全局Promise异常捕获
// express服务分三步// 1. 创建实例化服务
const express = require('express');
const app = express();// 中间件分3种
// 1. 全局中间件:第一个参数是回调函数时,则针对所有请求生效
// 2. 路由中间件:第一个参数是匹配路由,第二个参数为回调函数
// 3. 异常中间件:回调函数包含四个参数// 中间件:处理请求的业务逻辑
// 前置中间件--全局中间件
app.use(function (req, res, next) {console.log('前置中间件:middleware');next()
})
// 路由中间件
app.use('/test',function (req, res, next) {console.log('路由中间件:middleware');res.send('test')next()
})// 2. 拦截路由
app.get('/',function(req, res, next){console.log('拦截路由');res.send('<html><body><div style="color:red">111</div></body></html>')next();
})// 后置中间件--全局中间件
app.use(function (req, res, next) {console.log('后置中间件:middleware');throw new Error('错误信息')
})// 异常中间件
// 注意:
// 1. 异常中间件全局只包含一个
// 2. 异常中间件可以传递给普通中间件
// 3. 异常中间件需要放在所有中间件的最后
// 4. 异常中间件只能捕获回调函数中的异常,比如Promise.then(throw new Error())这种就捕获不到了
app.use(function (err, req, res, next) {console.log('异常中间件:', err.message)next()
})// 全局异常捕获
process.on('uncaughtException', function (err) {console.log('全局异常捕获', err.message);
})
// 全局Promise异常捕获
process.on('unhandledRejection', function (err) {console.log('全局Promise异常捕获', err.message);
})// 3. 启动实例化服务
const port = 8080;
app.listen(port, function(){console.log('------服务启动成功');
})
3、https服务和静态服务
1. https服务
- 需要购买或者找免费的证书,证书分公钥和私钥。
2. 静态服务
- 通过路由中间件,将static文件夹下的所有文件转为静态资源
- 访问方式:ip:port/static/index.html
// express服务分三步// 1. 创建实例化服务
const express = require('express');
const https = require('https');
const fs = require('fs');
const app = express();// 中间件分3种
// 1. 全局中间件:第一个参数是回调函数时,则针对所有请求生效
// 2. 路由中间件:第一个参数是匹配路由,第二个参数为回调函数
// 3. 异常中间件:回调函数包含四个参数// 中间件:处理请求的业务逻辑
// 前置中间件--全局中间件
app.use(function (req, res, next) {console.log('前置中间件:middleware');next()
})
// 路由中间件
app.use('/test',function (req, res, next) {console.log('路由中间件:middleware');res.send('test')next()
})
// 将static下的所有文件都转换为静态文件
// 访问方式:ip:port/static/index.html
app.use('/static', express.static('./static'))// 2. 拦截路由
app.get('/',function(req, res, next){console.log('拦截路由');res.send('<html><body><div style="color:red">111</div></body></html>')next();
})// 后置中间件--全局中间件
app.use(function (req, res, next) {console.log('后置中间件:middleware');throw new Error('错误信息')
})// 异常中间件
// 注意:
// 1. 异常中间件全局只包含一个
// 2. 异常中间件可以传递给普通中间件
// 3. 异常中间件需要放在所有中间件的最后
// 4. 异常中间件只能捕获回调函数中的异常,比如Promise.then(throw new Error())这种就捕获不到了
app.use(function (err, req, res, next) {console.log('异常中间件:', err.message)next()
})// 全局异常捕获
process.on('uncaughtException', function (err) {console.log('全局异常捕获', err.message);
})
// 全局Promise异常捕获
process.on('unhandledRejection', function (err) {console.log('全局Promise异常捕获', err.message);
})// 3. 启动实例化服务
const port = 8080;
app.listen(port, function(){console.log('------服务启动成功');
})// 启动一个https服务
const httpsPort = 443;
const options = {// key:fs.readFileSync('私钥文件路径'), // 私钥// cert:fs.readFileSync('公钥文件路径') // 公钥
}
const httpsServer = https.createServer(options, app);
httpsServer.listen(httpsPort, function(){console.log('------https服务启动成功');
})
前端工程化:express服务端开发相关推荐
- 入门级Node.js express服务端开发_Android签到APP
2019独角兽企业重金招聘Python工程师标准>>> 一.APP原型 参考另一篇博客:https://my.oschina.net/u/2480757/blog/788578 二. ...
- NodeJS+Express+mySQL服务端开发详解
NodeJS+Express+mySQL服务端开发详解 随着NodeJS的发展,现在已经被很多人熟知,NodeJS已经成为了前端开发人员必备的技能.本文不会对NodeJS过多介绍 如果你感兴趣可以访问 ...
- Express+MongoDB服务端开发教程
本项目源码地址 my_express_server 参考资料 NodeJS服务端开发极速入门 准备工作 安装一些必要的全局依赖 # 全局暴力设置淘宝源 npm config set registry ...
- github nodejs mysql_GitHub - lizhuohaicode/express: nodejs服务端开发(Express+Mysql)---小k博客...
nodejs服务端开发(Express+Mysql) 项目展示 git clone git@github.com:htmlk/express.git 2.再导入express.sql到数据库,数据库名 ...
- rds基于什么开发_为什么不学基于TypeScript的Node.js服务端开发?
为什么不学?学不动了吗?!别躺下啊,我扶你起来! 我们早就知道,如今的JavaScript已经不再是当初那个在浏览器网页中写写简单的表单验证.没事弹个alert框吓吓人的龙套角色了.借助基于v8引擎的 ...
- 第13章 Kotlin 集成 SpringBoot 服务端开发(1)
第13章 Kotlin 集成 SpringBoot 服务端开发 本章介绍Kotlin服务端开发的相关内容.首先,我们简单介绍一下Spring Boot服务端开发框架,快速给出一个 Restful He ...
- 一、服务端开发基础(搭建Web服务器、网络基础概念、请求响应流程、配置Apache、静态网站与动态网站)
一.建立你的第一个网站(目标) 前端开发 最终还是属于 Web 开发 中的一个分支,想要成为一名合格的前端开发人员,就必须要 充分理解Web 的概念. 构建一个专业的网站是一项巨大的工作!对于新手我们 ...
- 奇虎360WEB平台部招贤纳士之服务端开发
部门介绍 招聘部门:WEB平台部 WEB平台部是奇虎360的技术支持部门,为公司各业务线提供互联网行业全方位的技术支持和解决方案.WEB平台部包含业内知名的前端团队奇舞团,测试团队Qtest,基础研发 ...
- 2016届360公司PHP服务端开发笔试和面试之所得所感
这是一篇叙述自己在360公司参加笔试和面试的过程,可能面试的职位并不是你所学的方向,但是如果你能从中学到些什么或者吸取我的教训,那么作者就非常知足了.本着"学习别人是怎么失败的,活着出来的人 ...
最新文章
- 区块链技术特点之去中心化特性
- 针对《评人工智能如何走向新阶段》一文,继续发布国内外的跟贴留言427-438条如下:
- 考研院校选择【2022 考研 定专业就要这三步——专业必知、专业初选与精选】
- malloc/free与new/delete的区别与联系
- Pytorch—时序数据的加载与简单处理
- 当心路径层次太深,名字太长造成解压失败
- AndroidStudio使用gradle出现Could not download... 或unable to resolve dependency for...
- Eclipse版本控制插件Subclipse与Subversive的区别
- ath9k usb wifi 网卡驱动浅析
- 清华学霸教你1小时入门 Python 爬虫,别说学长没帮你
- 高中数学培训:高一数学复习技巧方法
- dlna 交互步骤-转发
- 移动硬盘无法被识别怎么办?
- JavaScript系列文章:变量提升和函数提升
- 虚拟机克隆如何调整计算机名,VMware虚拟机克隆的方法
- n级阶梯,每次走一步或两步,问最多有多少种走法
- 判断两个单向链表是否相交
- Android10报错:error: libxxx (native:vendor) should not link to libxxx (native:platform)(一百一十七)
- 巧用书法字帖提高书法造诣
- 扔物线Kotlin讲解学习(一)----Kotlin的权限修饰符详解
热门文章
- 凡拓数字通过注册:年营收7亿 伍穗颖夫妇控制43%股权
- 安卓手机突然很卡_为什么你的安卓手机越用越卡,真是内存不够?终于找到原因了!...
- 前女友让我撸个植物大战僵尸,我一怒之下把代码开源了...
- 0905系统及数据库
- LPC1768 关于延时Delay时间与不同等级的优化对比
- Jacobi的GPU并行迭代 OpenACC
- LeetCode-1694. 重新格式化电话号码【字符串,分块】
- 接口测试、接口协议以及常用接口测试工具介绍
- 【流媒体服务】安装推流转码工具(三):【1】下载安装ffmpeg推流转码工具
- 笔记本电脑键盘被锁如何解锁