位置: 编程技术 - 正文

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

  • 建筑发票开具与土增税扣有什么关系?
  • 老板自己出钱买股票
  • 民间非营利组织算企业吗
  • 小微企业免征的增值税要交所得税吗
  • 企业股东分红所得税税率表
  • 摊销折旧是什么意思
  • 死账呆账的处理程序
  • 销售退回的会计分录金额怎么写
  • 水利建设工程
  • 计提年终奖金的会计分录怎么写
  • 代收车船税是什么意思必须收吗
  • 集团公司内部无偿借贷增值税
  • 公司给另外一家公司投资
  • 合伙企业收到的合伙金计入什么科目
  • 工会基金是扣个人还是扣企业的
  • 企业房产税怎么申报缴纳流程
  • 免税收入包括哪些收入
  • 成本和费用属于资产吗
  • 广告公司返点是什么意思
  • 职工食堂购买洗碗机申请
  • 劳务报酬个税计算公式表
  • 企业三大期间费用是什么
  • 促销费影响主营利润吗
  • 黄金入账怎么做会计分录
  • 购入未抵扣的固定成本
  • 海康工业相机彩色改黑白设置
  • 专项贷款损失准备金在一定程度上具有资本的性质
  • 报废汽车残值收入如何计税
  • php 抓取别的网站的内容
  • 蓝牙11
  • 出售土地账务如何处理
  • win11设置项改中文
  • 基于thinkphp开发的框架
  • 培训机构先收费后付费
  • 管家婆系统能否查询上月库存明细
  • 2、springboot+mybatis+ajax+pageHelper+idea+maven(全套增删改查)
  • 应收款需要平行公司吗
  • 预付款为什么不扣质保金呢
  • 小规模缴纳印花税吗怎么做账
  • 会计为什么不能有0
  • 股东之间股权转让流程
  • 融资租赁担保余值例题
  • 企业所得税是指利润的税吗
  • 购入交易性金融资产的相关税费计入
  • 免税农产品范围目录的文件
  • 查账征收和核定征收有什么区别
  • 商业保险如何做伤残鉴定的
  • 保证金计算器
  • 把上级机关来文转给下级机关的通知
  • 补开以前的发票可以抵企业所得税吗?
  • 应付利润科目
  • 青苗赔偿管理办法
  • 非流动性资产有
  • 外汇申报材料
  • 建筑业营改增后税率变化
  • 房地产企业前期围墙费用
  • windows2003密码破解
  • Windows Server 2008域环境下组策略两例应用
  • ubuntu的命令行快捷键
  • linux 系统查看
  • 手机连接电脑win11
  • win7系统通过wmic命令
  • cocos2d android 游戏开发学习——CCAction(一)
  • linux系统中可用于添加用户账号
  • 入门级啥意思
  • 关闭默认共享和共享文件夹
  • perl遍历哈希
  • java程序员准备骑驴找马了,需要怎么准备
  • bootstrap 网格
  • Javascript typeof与instanceof的区别
  • 快速备份mysql数据库
  • javascript getattribute
  • unity异步加载场景
  • python设计gui
  • 简述javascript
  • 税务局哪些部门轻松待遇好
  • 增值税发票的发票号码和发票代码
  • 怎么查行业代码是多少
  • 网上发票分配
  • 山东国家税务局许本虎
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设