位置: 编程技术 - 正文

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

  • 旧机器设备出口
  • 财税咨询
  • 劳保用品发放制度文件
  • 计提业务提成怎么做账
  • 未确认融资收益对应的科目是什么
  • 开出增值税专用发票流程
  • 应交税费科目核算
  • 个体工商户办税务
  • 其他应收款 应收账款
  • 汇算清缴自查报告
  • 采购合同可以包含安装吗
  • 认缴制下股权转让如何不交税
  • 地税都包括什么
  • 图书发票没有明细能报销吗?
  • 农产品销售发票是什么?
  • 金税盘可以异地使用吗
  • 个税系统工资少报了怎么办
  • 银行年费计入管理费用还是财务费用
  • 出口退税如何办理手续
  • 印花税的缴纳方式包括
  • mac book air文件夹怎么重命名
  • 调整之前的凭证怎么删除
  • 融资租入固定资产的账务处理
  • 现行小规模纳税人增值税税率
  • PHP:mcrypt_module_self_test()的用法_Mcrypt函数
  • 监狱劳教企业是国企吗
  • Element-UI--<el-switch>的@change回调函数的参数用法
  • 房地产公司收房款怎么分录
  • 常见浏览器兼容软件
  • pytorch torch
  • 芝麻信用app
  • 支付境外佣金税收政策
  • 企业领用低值易耗品计入
  • 香港企业的所得税怎么算
  • 企业的所有分类
  • 软件开发企业如何核算成本
  • 工会经费缴纳方式的文件
  • 暂估入库有风险吗
  • mysql数据库介绍官方
  • python 列表sum
  • 税控盘使用费
  • 酒类许可证过期了去哪里换证
  • 预付账款需要做预算凭证吗
  • 个体工商户季开票30万是否缴纳个人所得税
  • 出口企业出口退税流程
  • 未开票收入缴纳增值税怎么冲减补开发票
  • 不动产租赁可以享受加计抵减吗
  • 结汇时和月底结转汇兑损益
  • 资金退回怎么记账
  • 查定征收在哪一章
  • 什么费用可以列入研发费用
  • 营改增后不动产发票怎么开
  • mysql分页效率
  • js操作剪切板
  • windows补丁是什么
  • mac系统怎么新建txt
  • freebsd login
  • 如何关闭mac上的icloud
  • mac系统怎么画图
  • win7更新不了80072efe
  • win8开机进入开始界面
  • win8.1卸载系统自带应用工具
  • win10系统开机重装教程
  • 电脑已禁用ime是什么
  • win7系统开机后桌面黑屏
  • perl 时间转换
  • cocos2d开发的知名游戏
  • python基本入门
  • 一行代码5个bug
  • jquery的动画效果
  • 新浪微博模仿推特
  • asynctask缺点
  • flask框架官方文档
  • 如何使用jquery
  • 注销一般户需要基本户的开户许可证吗
  • 粮仓计算公式
  • 中国烟草一年税收占全国总收入
  • 西安12345官网登录入口二维码
  • 设立新的机构或开办新的业务
  • 柬埔寨现在的领导
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设