位置: 编程技术 - 正文

从零学习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快速入门)

  • 即征即退进项税额转出
  • 啤酒消费税在那里征收
  • 税控盘当月不抵扣怎么申报
  • 服务业按什么结算收入
  • 小规模纳税人缴纳上月应交增值税
  • 向境外个人支付咨询费如何算税
  • 加油发票样式图
  • 装修摊销是当月还是次月摊销?
  • 投资性房地产的初始计量
  • 企业接收捐赠的会计分录
  • 现金支票填写注意事项有哪些
  • 承担客户装修费怎么入账
  • 计提的工会经费怎么做账
  • 经营杠杆系数分类
  • 出口退税进项税额转出是什么意思
  • 购入货物自用的进项税额转出分录怎么处理
  • 银行本票结算分录
  • 哪些单位可以开专票
  • 租房提取的话可以全部提取吗
  • 起征点是什么意思举例子说明
  • 质量扣款可以放到费用吗
  • 小规模纳税人需要每月清卡吗
  • 小规模纳税人自来水税率
  • 公司拍卖车牌
  • 记账凭证领用材料如何填写
  • 小规模纳税人的税率是多少
  • 一般风险准备金计算公式
  • 视同销售行为怎么进行财税处理?
  • 以前年度少计费用,调整分录
  • 结转未交增值
  • 施工组织评审会谁组织
  • touch id反应慢
  • 母公司对子公司减资
  • win10下载的软件打不开
  • win10升级win11报错
  • 金税盘服务费怎么申报抵扣
  • PHP:highlight_file()的用法_misc函数
  • 会计分录有哪几种形式
  • thinkphp yii
  • 利息年化率怎么算化利率怎么算
  • vue数据更新会触发什么生命周期
  • php比较大小
  • php代码提示
  • 财政专户资金是专项资金吗
  • 2023最新最全的祈祷视频
  • php签到功能思路
  • php密码加密技术phpass
  • python字符串字面量有哪4种
  • 机械租赁税率是多少?
  • 办公费用会计科目怎么写
  • 小企业会计准则外币业务
  • 未来的现金流折现
  • c语言asc函数
  • mongodb视频教程
  • 汇算清缴是什么
  • 个体户也需要纳税吗
  • 报废产品账务的处理方法
  • 新政府会计制度与旧制度区别
  • 实缴增值税比计提增值税少怎么做账务处理
  • 税控盘全额抵减如何填写申报表
  • 强制执行的款在执行局领取吗
  • 佣金如何做账分录
  • 租赁合同的印花税的计税依据
  • 发票红冲重新开具怎么做分录
  • sqlserver使用方法
  • win8链接wi-fi
  • mac怎么安装ios
  • win7任务栏快捷启动如何设置
  • 你不知道的关于现代主义的故事
  • 如何在vmware虚拟机中安装macos11.0
  • jquery弹出框样式大全
  • 让一切停留在最美好的时光
  • 下眼角疼痒
  • javascript中对象一般由什么组成
  • nodejs.
  • shell脚本windows
  • jquery获取自定义标签的值
  • 原生js实现promise.all
  • 国家税务总局2019年45号公告解读
  • 房地产企业所得税确认收入时间
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设