位置: 编程技术 - 正文

Node.js的Express框架使用上手指南(node.js+express)

编辑:rootadmin

推荐整理分享Node.js的Express框架使用上手指南(node.js+express),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:nodejsexpress教程,nodejsexpress教程,nodejs的express框架是什么,node.js的express框架,nodejs的express框架详解,node.js的express框架介绍,nodejs的express框架详解,nodejs的express框架是什么,内容如对您有帮助,希望把文章链接给更多的朋友!

Express介绍npm提供了大量的第三方模块,其中不乏许多Web框架,比如我们本章节要讲述的一个轻量级的Web框架 ——— Express。

Express是一个简洁、灵活的node.js Web应用开发框架, 它提供一系列强大的功能,比如:模板解析、静态文件服务、中间件、路由控制等等,并且还可以使用插件或整合其他模块来帮助你创建各种 Web和移动设备应用,是目前最流行的基于Node.js的Web开发框架,并且支持Ejs、jade等多种模板,可以快速地搭建一个具有完整功能的网站。

好,下面我们就开始吧!

1. NPM安装

2. 获取、引用

通过变量“app”我们就可以调用express的各种方法了,好戏刚刚开始,继续加油吧!

创建应用认识了Express框架,我们开始创建我们的第一个express应用。

在我们的默认项目主文件app.js添加如下内容:

说明:在后面课程学习中,我们会统一使用端口用于监听请求。

添加完毕之后,通过右侧栏的“测试地址”来查看浏览器内容,当看到“Hello World!”内容就表明一个简单的express应用已经创建成功了。

get请求前面我们实现了一个简单的express应用,下面我们就开始具体讲述它的具体实现,首先我们先来学习Express的常用方法。

get方法 —— 根据请求路径来处理客户端发出的GET请求。

格式:

path为请求的路径,第二个参数为处理请求的回调函数,有两个参数分别是request和response,代表请求信息和响应信息。

如下示例:

上面示例中,指定了about页面路径、根路径和所有路径的处理方法。并且在回调函数内部,使用HTTP回应的send方法,表示向浏览器发送一个字符串。

参照以上代码,试试自己设定一个get请求路径,然后浏览器访问该地址是否可以请求成功。

Middleware<中间件>1.什么是中间件?

中间件(middleware)就是处理HTTP请求的函数,用来完成各种特定的任务,比如检查用户是否登录、分析数据、以及其他在需要最终将数据发送给用户之前完成的任务。 它最大的特点就是,一个中间件处理完,可以把相应数据再传递给下一个中间件。

2.一个不进行任何操作、只传递request对象的中间件,大概是这样:

上面代码的next为中间件的回调函数。如果它带有参数,则代表抛出一个错误,参数为错误文本。

抛出错误以后,后面的中间件将不再执行,直到发现一个错误处理函数为止。如果没有调用next方法,后面注册的函数也是不会执行的。

all函数的基本用法和get函数不同app.all()函数可以匹配所有的HTTP动词,也就是说它可以过滤所有路径的请求,如果使用all函数定义中间件,那么就相当于所有请求都必须先通过此该中间件。

格式:

如下所示,我们使用all函数在请求之前设置响应头属性。

上面代码参数中的“*”表示对所有路径有效,这个方法在给特定前缀路径或者任意路径上处理时会特别有用,不管我们请求任何路径都会事先经过all函数。

如果所示,如果我们跳过all函数又会怎么样呢,自己动手试一试?

use基本用法1use是express调用中间件的方法,它返回一个函数。

格式:

1. 使用中间件

如上呢,我们就使用use函数调用express中间件设定了静态文件目录的访问路径(这里假设为根路径)。

2. 如何连续调用两个中间件呢,如下示例:

Node.js的Express框架使用上手指南(node.js+express)

回调函数的next参数,表示接受其他中间件的调用,函数体中的next(),表示将请求数据传递给下一个中间件。

上面代码先调用第一个中间件,在控制台输出一行信息,然后通过next(),调用第二个中间件,输出HTTP回应。由于第二个中间件没有调用next方法,所以req对象就不再向后传递了。

use基本用法2use方法不仅可以调用中间件,还可以根据请求的网址,返回不同的网页内容,如下示例:

上面代码通过request.url属性,判断请求的网址,从而返回不同的内容。

回调函数Express回调函数有两个参数,分别是request(简称req)和response(简称res),request代表客户端发来的HTTP请求,request代表发向客户端的HTTP回应,这两个参数都是对象。示例如下:

在后面的学习中,我们会经常和它打交道,牢牢记住它的格式吧!

获取主机名、路径名今天我们就先来学习如何使用req对象来处理客户端发来的HTTP请求。

req.host返回请求头里取的主机名(不包含端口号)。

req.path返回请求的URL的路径名。

如下示例:

试一试在浏览器中输入任意一个请求路径,通过req查看主机名或请求路径。

query基本用法query是一个可获取客户端get请求路径参数的对象属性,包含着被解析过的请求参数对象,默认为{}。

通过req.query获取get请求路径的对象参数值。

格式:req.query.参数名;请求路径如下示例:

例1: /search&#;n=Lenka

例2: /shoes&#;order=desc&shoe[color]=blue&shoe[type]=converse

试一试get请求一个带参数路径,使用“req.query.参数名”方法获取请求参数值。

param基本用法和属性query一样,通过req.param我们也可以获取被解析过的请求参数对象的值。

格式:req.param("参数名");请求路径如下示例:

例1: 获取请求根路径的参数值,如/&#;n=Lenka,方法如下:

例2:我们也可以获取具有相应路由规则的请求对象,假设路由规则为 /user/:name/,请求路径/user/mike,如下:

PS:所谓“路由”,就是指为不同的访问路径,指定不同的处理方法。

看了上面的示例,试一试使用req.param属性解析一个请求路径对象,并获取请求参数值。

params基本用法和param相似,但params是一个可以解析包含着有复杂命名路由规则的请求对象的属性。

格式:req.params.参数名;

例1. 如上课时请求根路径的例子,我们就可以这样获取,如下:

查看运行结果,和param属性功能是一样的,同样获取name参数值。

例2:当然我们也可以请求复杂的路由规则,如/user/:name/:id,假设请求地址为:/user/mike/,如下:

对于请求地址具有路由规则的路径来说,属性params比param属性是不是又强大了那么一点点呢!

send基本用法send()方法向浏览器发送一个响应信息,并可以智能处理不同类型的数据。格式如下: res.send([body|status], [body]);

1.当参数为一个String时,Content-Type默认设置为"text/html"。

2.当参数为Array或Object时,Express会返回一个JSON。

3.当参数为一个Number时,并且没有上面提到的任何一条在响应体里,Express会帮你设置一个响应体,比如:会返回字符"OK"。

send方法在输出响应时会自动进行一些设置,比如HEAD信息、HTTP缓存支持等等。

Node.js编写爬虫的基本思路及抓取百度图片的实例分享 其实写爬虫的思路十分简单:按照一定的规律发送HTTP请求获得页面HTML源码(必要时需要加上一定的HTTP头信息,比如cookie或referer之类)利用正则匹配或

node模块机制与异步处理详解 1.模块机制commonJS模块机制出现的目的是为了构建js在web服务器,桌面程序,浏览器等方面形成生态系统。而nodejs就是这种规范的一种实现,用requird来引

基于socket.io+express实现多房间聊天 socket.io简介Socket.IO是一个开源的WebSocket库,它通过Node.js实现WebSocket服务端,同时也提供客户端JS库。Socket.IO支持以事件为基础的实时双向通讯,它可以

标签: node.js+express

本文链接地址:https://www.jiuchutong.com/biancheng/370698.html 转载请保留说明!

上一篇:Node.js项目中调用JavaScript的EJS模板库的方法(nodejs调用go)

下一篇:Node.js编写爬虫的基本思路及抓取百度图片的实例分享(nodejs爬取数据)

  • 小规模纳税人转让不动产增值税
  • 增值税专票如何添加商品名称
  • 预缴税款可以下调吗
  • 行政处罚属于什么费用
  • 化肥发票怎么开
  • 税种认定网上操作流程
  • 豆粕是农产品初加工,企业所得税免税
  • 会计科目的设置
  • 赔付伤残费用还有误工费用么
  • 客户想免费拿样
  • 新公司前几个月发工资
  • 印花税申报表如何填写
  • 企业个人补偿款需要缴税吗?
  • 新租赁准则承租人进项税
  • 逃避缴纳税款罪移送公安标准
  • 低价销售代替非正常损失避免转出进项税?
  • 三证合一号码是纳税人识别号吗
  • 啤酒消费税的计税基础
  • 劳务派遣服务用简易计税方法吗
  • 代销方式的特点
  • 外地预缴城市建设2%的依据
  • 企业所得税汇算清缴退税账务处理
  • 工业产值怎么计算的 统计
  • 滴滴开的发票能否抵扣进项税
  • 进料加工可分为
  • 营改增后哪些费用可以抵扣
  • 盘盈现金计入当期损益
  • 进料进口
  • 企业收到政府扶贫资金补助及运用补助金怎么做账
  • 鸿蒙系统怎么同步数据
  • 2021年6月更新
  • 发票认证平台上不去
  • 重装系统后分辨率1920x1080不见了
  • 补缴的耕地占用税怎么做账
  • 商票 银行贴现
  • 特许权使用费的增值税税率是多少
  • echartsgrid属性
  • 利润与所有者权益的区别
  • 在建工程减值准备是否可以转回
  • 待摊费用的明细
  • linux中mongodb启动
  • python 规划求解
  • 固定资产原值和净值的区别
  • 防火门是属于固定材料吗
  • 金蝶kis专业版仓存期末结账
  • 预计净残值的计算公式excel
  • 小规模纳税人记账报税流程
  • 减免的增值税要交所得税吗
  • 一般纳税人在外地预缴税款,预缴多了需不需退税
  • 如果是车间不生气怎么办
  • etc 电子票
  • 营业外支出会导致所有者权益减少吗
  • 用友t3财务通普及版如何开下年账
  • 电脑买了四个月折旧多少
  • 记账凭证先写借方还是贷方
  • 服务费的进项发票怎么做分录
  • 实收资本小于注册资本账务处理
  • 现金日记账月末怎么结账图片
  • 政府部门有税务和审计审查吗
  • 虚拟机linux端mysql数据库无法远程访问的解决办法
  • windows server2008系统弹出今天必须修改密码该怎么处理?
  • xp系统怎么设置系统启动项
  • centos配置网络地址
  • window扫雷游戏在哪里
  • windows全局搜索快捷键
  • Win7旗舰版电脑亮度怎么调节?
  • win8系统安装的软件在哪里
  • glrotatef函数
  • linux tcptraceroute
  • cocos2dx4.0入门
  • shell字符串截取加替换
  • 电脑怎么自动清除垃圾
  • AngularJS2 与 D3.js集成实现自定义可视化的方法
  • javascript总结笔记
  • shell脚本逐条执行
  • 每天一篇小练笔主题
  • JavaScript lastIndexOf方法入门实例(计算指定字符在字符串中最后一次出现的位置)
  • 国家税务总局监控的重点税源纳税人的标准是
  • 社保扣费为什么忽高忽低
  • 所有企业都要做应急预案吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设