位置: 编程技术 - 正文

从零学习node.js之express入门(六)(node js入门)

编辑:rootadmin

推荐整理分享从零学习node.js之express入门(六)(node js入门),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:node.js自学,node.js快速入门,node.js入门教程,node.js快速入门,学node.js需要什么基础,node.js快速入门,node.js快速入门,node.js入门教程,内容如对您有帮助,希望把文章链接给更多的朋友!

一、 介绍

什么是express,为什么要使用express?根据官方网站的说法,express是一个基于 Node.js 平台的极简、灵活的web应用开发框架,它提供一系列强大的特性、丰富的API接口,对web应用的接口进行了二次的封装,提供了MVC模式,方便我们可以快速地创建各种web和移动应用。

Express 框架核心特性:

可以设置中间件来响应 HTTP 请求。 定义了路由表用于执行不同的 HTTP 请求动作。 可以通过向模板传递参数来动态渲染 HTML 页面。

本文也只是简单的了解下express框架的内容,希望大家能比较快速的入门,更多详细的内容还是阅读官网并查看相关的API。

express的中文官方网站:【Express】

二、入门

创建一个目录myapp,进入到myapp后,使用命令npm express --save-dev把express安装到本地,然后创建app.js(或server.js)作为程序的入口。

运行app.js文件:

在浏览器中访问 world。说明基本的express程序可以正常运行了。

2.1 APP

引入express模块后,执行express()得到一个app实例,app实例中有get, post, use, listen等方法。

app.get(path, handler) : 当使用get方法访问路径path时,执行handler指定的方法,而且handler方法还带有req和res两个参数供我们使用。req是请求过来时带的信息,比如参数query, body, 头部header等; res是我们作为服务器想要返回给浏览器的信息设置。res.send(‘hello world')表示是向页面中发送'hello world'字符串。

当然,如果想要接收post过来的请求,可以使用 app.post(path, function(req, res){}) 接收post到path的请求。

app.listen用来监听本地的端口后运行web程序,监听成功后执行回调函数。

2.2 路由

我们在之前讲解《从零学习node.js之搭建http服务器(二)》也说过一点路由的内容,不过那时候我们制定的路由规则非常简单,而且只是处理了3个左右的页面而已。而express则对路由功能进行丰富。

app.get(path, handler) : get方式访问path路径 app.post(path, handler) : post方式访问path路径 app.put(path, handler) : put方式访问path路径 app.delete(path, handler) : delete方式访问path路径 app.all(path, handler) : 任何方式访问path路径

同时,我们也应该注意的是: /是表示根路径下,/user是表示user路径下,如果访问/user/login时,是直接访问/user/login路由的,前面的两个路由是不访问的。

而且,path路径还可以通过字符串匹配和正则匹配的方式进行路由选择。

从零学习node.js之express入门(六)(node js入门)

2.3 RES响应方法

我们在刚上面的例子中,使用res.send()向页面中输出一段'hello world'的纯文本字符串,而且res.send()也可以输出其他类型的数据,比如html字符串(浏览器可以解析),Buffer类型,Object类型,Array类型等。

比如我们要输出一段html字符串。

我们可以在浏览器上一个红色的hello world和一个文本输入框。但是若html的代码比较长,我们可以把这些代码都放到一个单独的html文件里,然后使用res.sendFile()方法,将html文件里的内容输出到页面中。

在根目录下创建一个index.html文件,把完整的html代码放进去,然后:

这样就能在浏览器中看到一个完整的页面了。

此外,res中还提供了一些别的方法供我们使用:

方法 描述 res.download() 下载文件。 res.end() 终结响应处理流程。 res.json() 发送一个 JSON 格式的响应。 res.jsonp() 发送一个支持 JSONP 的 JSON 格式的响应。 res.redirect() 重定向请求。 res.render() 渲染视图模板。 res.send() 发送各种类型的响应。 res.sendFile 以八位字节流的形式发送文件。 res.sendStatus() 设置响应状态代码,并将其以字符串形式作为响应体的一部分发送。

三、中间件

上面我们执行app.get('/', function(){})时,里面的回调函数就是中间件。中间件其实就是一个函数,在使用app.get, app.post, app.use等方法时,都是在调用中间件作为回调函数。 中间件都可以调用req和res对象,如果多个中间件顺序向下执行的话,上一个中间还需要一个next变量,来调用下一个中间件。

这里app.use的使用方法与app.get一样,都是有两个参数:path和回调函数,而在这里,path参数是可以忽略不写的(忽略不写则每个请求都会执行该中间件)。

我们在浏览器中输入一些不同的url看看:

url 控制台输出 浏览器输出 说明 .0.0.1: index m url: / index /user index m url: /user Cannot GET /user 中间件响应了不存在页面的请求 /topic/1.html index m url: /topic/1.html topic m url: /1.html topic 两个use中间件都响应了请求 /topic/c/1.html index m url: /topic/c/1.html topic m url: /c/1.html Cannot GET /topic/c/1.html 两个use中间件都响应了请求,只是没有路由来对该url进行处理

同时,app.use()和app.get()等方法,可以调用多个中间件依次执行,使用next()将控制权交由下一个中间件。多个中间件既可以依次作为传输传递进去,也可以都放到数组中,也可以两者混用(app.get等同理):

在上面代码的基础上,我们编写多个中间件。

当我们访问.0.0.1/topic/1.html时,在控制台则会输出:

说明中间件是依次向下执行的。我们可以在每个中间件都做不同的处理,不过要记得使用next()方法,不然页面就挂了。我们在上面看到res中的方法,至少需要调用一个,不然请求就会被挂起,一直等待或。如果对外没有任何的回复,也可以使用res.end()结束。同时,如果在某个中间件中使用了res中的方法,则后面的中间件不再调用。

总结

这里我们也是简要的了解了下express框架,更多的内容还是需要查看官网网站。之后我们将使用express构建一个简单的论坛系统。感兴趣的朋友们请继续关注积木网。

从零学习node.js之利用express搭建简易论坛(七) 一、应用生成器使用上节学习到express的知识,我们也可以从0开始,一步步把系统搭建起来。不过express中还有一个应用生成器,使用这个应用生成器可

node.js入门学习之url模块 前言今天主要记录的是关于node.js里面的一个简单的模块,url模块。这个url的模块要使用的话需要先引入。若只是在命令行里比如cmd或gitbash等使用url这个

关于Sequelize连接查询时inlude中model和association的区别详解 前言大家都知道在使用Sequelize进行关系模型(表)间连接查询时,我们会通过model/as来指定已存在关联关系的连接查询模型,或是通过association来直接指

标签: node js入门

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

上一篇:Node.JS中事件轮询(Event Loop)的解析(nodejs事件循环和js事件循环)

下一篇:从零学习node.js之利用express搭建简易论坛(七)(node.js快速入门)

  • 税务账是什么意思
  • 进口关税计算公式 案例
  • 开发票是否享受优惠政策
  • 2021小规模免税
  • 搬家费账务处理
  • 如何调整所得税费用
  • 滞纳金按什么比例算
  • 应收账款计提坏账比例
  • 收回多缴税金会计分录
  • 定期定额户超过定额怎么报个税
  • 企业增资扩股如何办理
  • 销项负数发票会计摘要
  • 小规模纳税人是简易计税吗
  • 开发商乱要回迁怎么投诉
  • 个人独资企业没有公司章程吗?
  • 如何办理临时经营纳税人设立登记
  • 处置的固定资产
  • 长期股权投资损失计入什么科目
  • 银行承兑汇票没有提示付款
  • php serialize
  • 电脑中毒如何处理
  • kb4586853更新
  • 怎样删除电脑系统账户
  • msmpeng.exe 是什么
  • 如何增加税务稽查信息
  • 固定资产转卖怎么开票
  • 应酬用的香烟
  • PHP:imageloadfont()的用法_GD库图像处理函数
  • 微信开发获取位置
  • 我国消费税的特点
  • php 进程间通信
  • 2023跨年烟花链接
  • 好家伙41集
  • js中move
  • 残保金申报操作流程
  • 工业总产值和营业收入关系
  • python关键字参数位置参数
  • mysql左连接查询 效率
  • 对外捐赠固定资产会影响利润总额吗
  • 低值易耗品还需要录入明细吗
  • 怎么看是不是真发
  • 具体包括以下哪些方面
  • 税前可扣除的税费
  • 控股子公司破产清算 母公司需审计
  • 视同销售的会计分录有哪些?
  • 坏账准备的账务处理T型
  • 什么情况可以作为证人
  • 个体户营业额超了怎么办
  • 购车税费怎样计算2023
  • 运输公司车辆保养记录表格
  • 认缴资金可以增加吗
  • 发现以前年度假期不满
  • 其他债权投资发生减值会影响所有者权益总额吗
  • 销售商品一批,销售价格为4520000
  • 住房公积金的账号怎样可以查询得到
  • 其他业务支出包括哪些内容科目
  • mysql获取日期年份
  • ubuntu20.04怎么样
  • mac系统的控制面板在哪
  • 苹果macOS 14 正式发布
  • windows8怎么查看所有程序
  • shell中awk命令
  • opensuse安装显卡驱动
  • xp录音软件
  • mac在哪看
  • win7手动更新在哪里设置
  • 为避免10月20号后盗版系统出现黑屏的bat文件
  • ISBMgr.exe - ISBMgr是什么进程 有什么作用
  • reald是什么格式
  • windows应用图标
  • 简述opengl的编程步骤
  • Javascript HTML5 Canvas实现的一个画板
  • 获取nodejs命令行信息
  • 消耗cpu的软件
  • textview不换行
  • jQuery leonaScroll 1.1 自定义滚动条插件(推荐)
  • 用python做一个贪吃蛇
  • 在android
  • 免租期算租赁期限吗
  • 企业注册的步骤
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设