网站首页 > 开源技术 正文
Nodejs Express新手教程&高手进阶
Express是一个NodeJS平台的框架,主要用于构于Web服务器项目。
本文将通过示例介绍适合新手入门的Express基础使用,以及高手进阶知识,如:cookie、session、前端框架、负载均衡等。
建立Express项目时,首先使用命令npm init 在项目目录中执行初始化,并执行npm install express --save安装Express。然后即可进行开发。
01:express框架
运行结果:
02:中间件概念
简单说,中间件(middleware)就是处理HTTP请求的函数。它最大的特点就是,一个中间件处理完,再传递给下一个中间件。App实例在运行过程中,会调用一系列的中间件。
每个中间件可以从App实例,接收三个参数,依次为request对象(代表HTTP请求)、response对象(代表HTTP回应),next回调函数(代表下一个中间件)。每个中间件都可以对HTTP请求(request对象)进行加工,并且决定是否调用next方法,将request对象再传给下一个中间件。
03:app.use
每次都会调用默认的访问地址 :
04:中间件应用
调用结果:
05:中间件错误处理
06:异步函数错误捕获
运行结果:
07:模块化路由基础代码
08:构建模块化路由
09:如何获取get请求参数
10:获取Post请求参数
使用三方包body-parser。
11:前端框架
使用三方模块express-generator,然后再使用express命令初始化项目:express --view=pug,表示使用pug模板引擎对前端进行渲染。
执行完这一步就会自动生成需要的文件和文件目录层次,其中包括静态文件和接口简单例子,还用启动命令等,如下图:
接下来,使用 npm start命令启动项目,就可以在浏览器输入localhost:3000查看了:
12:Cookie
在Express中使用cookie的话,要借助cookie-parser中间件。
13:session
session是一种记录客户状态的方式,不同于cookie,session将将信息保存在服务器中。
session原理:session虽然不同于cookie,但是却是基于cookie运作的。当浏览器访问服务器并发送第一次请求时,服务端会创建一个session对象,生成一个类似于key:value的键值对,然后将cookie(key)返回到客户端。浏览器下次访问时,就可以携带cookie(key)找到对应的session(value)。
在express中使用session可借助express-session模块。
在实际项目中,我们大多会采用nginx,多服务负载均衡的方式减轻服务器压力,但是会有一个问题,就是有可能我们之前是在杭州的服务器设置了session,但是下次访问相同网址时如果时通过其他地方(比如深圳)的服务器就无法获取到之前在杭州服务器上设置的session。
所以在实际项目中,通常会将session存放在mongodb中,这样就可以多个服务器共同使用了,为实现这个功能,可再使用connect-mongo模块。
至此,已经实现了Express的新手基础入门,到熟练使用实现众多功能。
由上面的例子可以发现,Express有许多的三方模块,可用于实现各种功能,在我们的实际开发中,多数时间也就是使用这些模块。
猜你喜欢
- 2024-10-22 调用 Express API时出现奇怪的CORS错误怎么办?
- 2024-10-22 详解如何从零开始搭建Express+Vue开发环境
- 2024-10-22 从零开始学习nodejs+express--交互环境
- 2024-10-22 express开发(一)简介与搭建(express创建项目)
- 2024-10-22 express中间件原理connect(express和koa中间件原理的区别)
- 2024-10-22 蓝易云 - centos系统直接部署express教程。
- 2024-10-22 Node + Express + Mysql: Todo List项目让你成全栈
- 2024-10-22 我为 Express 开了外挂(cad中的express怎么显示为中文)
- 2024-10-22 七爪源码:让我们 Dockerize 一个 Node.js Express 应用程序
- 2024-10-22 Node实战篇:Express--jade模板引擎(七)
你 发表评论:
欢迎- 03-19基于layui+springcloud的企业级微服务框架
- 03-19开箱即用的前端开发模板,扩展Layui原生UI样式,集成第三方组件
- 03-19SpringMVC +Spring +Mybatis + Layui通用后台管理系统OneManageV2.1
- 03-19SpringBoot+LayUI后台管理系统开发脚手架
- 03-19layui下拉菜单form.render局部刷新方法亲测有效
- 03-19Layui 遇到的坑(记录贴)(layui chm)
- 03-19基于ASP.NET MVC + Layui的通用后台开发框架
- 03-19LayUi自定义模块的定义与使用(layui自定义表格)
- 最近发表
-
- 基于layui+springcloud的企业级微服务框架
- 开箱即用的前端开发模板,扩展Layui原生UI样式,集成第三方组件
- SpringMVC +Spring +Mybatis + Layui通用后台管理系统OneManageV2.1
- SpringBoot+LayUI后台管理系统开发脚手架
- layui下拉菜单form.render局部刷新方法亲测有效
- Layui 遇到的坑(记录贴)(layui chm)
- 基于ASP.NET MVC + Layui的通用后台开发框架
- LayUi自定义模块的定义与使用(layui自定义表格)
- Layui 2.9.11正式发布(layui2.6)
- Layui 2.9.13正式发布(layui2.6)
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)