位置: 编程技术 - 正文

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

  • 递延所得税资产和所得税费用的关系
  • 企业季度所得税申报表怎么填写
  • 非营利组织企业所得税
  • 白酒消费税税率多少钱一吨
  • 什么是税务登记管理
  • 应纳税所得额是利润总额吗
  • 什么情况下一般纳税人可以简易征收
  • 资产负债表其他应付款包括哪些
  • 税额四舍五入的计算公式
  • 权益工具是金融资产还是所有者权益
  • 金税盘技术维护费怎么申报
  • 累计赡养老人专项扣除6000
  • 合并报表负商誉为什么计留存收益
  • 外商投资企业是中国企业吗
  • 资本化研发费用在本年的摊销
  • 去年购进的货物今年才收到发票
  • 股权转让后的实收资本怎么做账
  • 工程预付款的规定
  • 购买可供出售金融资产
  • 免征企业所得税的有哪些行业
  • 税收奖励计入什么科目
  • 房地产开发公司取名
  • 发票税率开错怎么处理?
  • 金蝶kis迷你版操作手册
  • 基金赎回手续费怎么计算
  • 审计报告格式与范文怎么写?
  • 一般纳税人错开免税发票如何申报
  • 所有者权益合计是负数是什么意思
  • 退车辆保险费如何计算
  • 销售原材料会计分录,款项已收
  • 资源税改革最新政策
  • 运输服务费和运输费分别计入什么科目
  • 小规模纳税人开票限额是多少
  • 王者荣耀电脑版怎么键盘操作
  • 房地产企业将开发产品抵押后再销售
  • 电脑系统出问题了怎么办
  • 报税时漏报进项怎么办
  • 经营免租期是什么意思
  • 又十个超级有用的PHP代码片段
  • 预提的奖金需要缴纳个人所得税吗
  • 银行存款日记账与银行对账单之间的核对属于
  • 金融商品转让收入
  • jupyter用法
  • thinkphp 多表查询
  • linuxless命令查看文件
  • 三类职业指的是什么
  • 一个合同里面服务怎么写
  • vue3子组件如何拿到父组件实例
  • jsp连接数据库的步骤
  • 现金流量表财务报表
  • 应收票据和其他应收款的区别
  • 小额收据入账规则最新
  • 小规模纳税人工资要每月申报
  • 固定资产减少当月计提吗
  • 私车公用协议可以过户吗
  • 甲方向乙方支付
  • 普通发票可以抵扣吗
  • 企业资产负债表怎么做
  • 咨询公司评估选择标准
  • 有限合伙企业的特征
  • 长期待摊费用摊销计算公式
  • 机器设备进项税率
  • mysql获取表行数的方法
  • Vista Virtual PC软件安装XP系统
  • bboy.exe进程是病毒吗 bboy进程安全吗
  • crontab环境变量不生效
  • win7 32位无线网卡驱动
  • win8.1开机自启项目在哪里
  • js内存释放
  • kui血条插件设置
  • jQuery插件能输出到控制台
  • linux如何创建守护进程
  • unity调用c++封装的dll
  • 批量修改ssh配置端口
  • 常用的批处理命令
  • android客户端开发是干嘛的
  • javascript用什么运行
  • javascript基础编程
  • 什么车属于应征消费税的汽车
  • 公司被分立,应将分立后的单位
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设