目录

  • 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种

  1. 全局中间件:第一个参数是回调函数时,则针对所有请求生效
  2. 路由中间件:第一个参数是匹配路由,第二个参数为回调函数
  3. 异常中间件:回调函数包含四个参数

2. 异常捕获有3种

  1. 异常中间件:回调函数包含四个参数
  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服务

  1. 需要购买或者找免费的证书,证书分公钥和私钥。

2. 静态服务

  1. 通过路由中间件,将static文件夹下的所有文件转为静态资源
  2. 访问方式: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服务端开发相关推荐

  1. 入门级Node.js express服务端开发_Android签到APP

    2019独角兽企业重金招聘Python工程师标准>>> 一.APP原型 参考另一篇博客:https://my.oschina.net/u/2480757/blog/788578 二. ...

  2. NodeJS+Express+mySQL服务端开发详解

    NodeJS+Express+mySQL服务端开发详解 随着NodeJS的发展,现在已经被很多人熟知,NodeJS已经成为了前端开发人员必备的技能.本文不会对NodeJS过多介绍 如果你感兴趣可以访问 ...

  3. Express+MongoDB服务端开发教程

    本项目源码地址 my_express_server 参考资料 NodeJS服务端开发极速入门 准备工作 安装一些必要的全局依赖 # 全局暴力设置淘宝源 npm config set registry ...

  4. github nodejs mysql_GitHub - lizhuohaicode/express: nodejs服务端开发(Express+Mysql)---小k博客...

    nodejs服务端开发(Express+Mysql) 项目展示 git clone git@github.com:htmlk/express.git 2.再导入express.sql到数据库,数据库名 ...

  5. rds基于什么开发_为什么不学基于TypeScript的Node.js服务端开发?

    为什么不学?学不动了吗?!别躺下啊,我扶你起来! 我们早就知道,如今的JavaScript已经不再是当初那个在浏览器网页中写写简单的表单验证.没事弹个alert框吓吓人的龙套角色了.借助基于v8引擎的 ...

  6. 第13章 Kotlin 集成 SpringBoot 服务端开发(1)

    第13章 Kotlin 集成 SpringBoot 服务端开发 本章介绍Kotlin服务端开发的相关内容.首先,我们简单介绍一下Spring Boot服务端开发框架,快速给出一个 Restful He ...

  7. 一、服务端开发基础(搭建Web服务器、网络基础概念、请求响应流程、配置Apache、静态网站与动态网站)

    一.建立你的第一个网站(目标) 前端开发 最终还是属于 Web 开发 中的一个分支,想要成为一名合格的前端开发人员,就必须要 充分理解Web 的概念. 构建一个专业的网站是一项巨大的工作!对于新手我们 ...

  8. 奇虎360WEB平台部招贤纳士之服务端开发

    部门介绍 招聘部门:WEB平台部 WEB平台部是奇虎360的技术支持部门,为公司各业务线提供互联网行业全方位的技术支持和解决方案.WEB平台部包含业内知名的前端团队奇舞团,测试团队Qtest,基础研发 ...

  9. 2016届360公司PHP服务端开发笔试和面试之所得所感

    这是一篇叙述自己在360公司参加笔试和面试的过程,可能面试的职位并不是你所学的方向,但是如果你能从中学到些什么或者吸取我的教训,那么作者就非常知足了.本着"学习别人是怎么失败的,活着出来的人 ...

最新文章

  1. 区块链技术特点之去中心化特性
  2. 针对《评人工智能如何走向新阶段》一文,继续发布国内外的跟贴留言427-438条如下:
  3. 考研院校选择【2022 考研 定专业就要这三步——专业必知、专业初选与精选】
  4. malloc/free与new/delete的区别与联系
  5. Pytorch—时序数据的加载与简单处理
  6. 当心路径层次太深,名字太长造成解压失败
  7. AndroidStudio使用gradle出现Could not download... 或unable to resolve dependency for...
  8. Eclipse版本控制插件Subclipse与Subversive的区别
  9. ath9k usb wifi 网卡驱动浅析
  10. 清华学霸教你1小时入门 Python 爬虫,别说学长没帮你
  11. 高中数学培训:高一数学复习技巧方法
  12. dlna 交互步骤-转发
  13. 移动硬盘无法被识别怎么办?
  14. JavaScript系列文章:变量提升和函数提升
  15. 虚拟机克隆如何调整计算机名,VMware虚拟机克隆的方法
  16. n级阶梯,每次走一步或两步,问最多有多少种走法
  17. 判断两个单向链表是否相交
  18. Android10报错:error: libxxx (native:vendor) should not link to libxxx (native:platform)(一百一十七)
  19. 巧用书法字帖提高书法造诣
  20. 扔物线Kotlin讲解学习(一)----Kotlin的权限修饰符详解

热门文章

  1. 凡拓数字通过注册:年营收7亿 伍穗颖夫妇控制43%股权
  2. 安卓手机突然很卡_为什么你的安卓手机越用越卡,真是内存不够?终于找到原因了!...
  3. 前女友让我撸个植物大战僵尸,我一怒之下把代码开源了...
  4. 0905系统及数据库
  5. LPC1768 关于延时Delay时间与不同等级的优化对比
  6. Jacobi的GPU并行迭代 OpenACC
  7. LeetCode-1694. 重新格式化电话号码【字符串,分块】
  8. 接口测试、接口协议以及常用接口测试工具介绍
  9. 【流媒体服务】安装推流转码工具(三):【1】下载安装ffmpeg推流转码工具
  10. 笔记本电脑键盘被锁如何解锁