位置: 编程技术 - 正文

进阶之初探nodeJS(node.js入门教程)

编辑:rootadmin

推荐整理分享进阶之初探nodeJS(node.js入门教程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:node.js入门教程,node js入门,nodejs进阶之路,node js入门,node js入门,深入node.js技术栈,深入node.js技术栈,nodejs进阶之路,内容如对您有帮助,希望把文章链接给更多的朋友!

一、前言

在"初探nodeJS"随笔中,我们对于node有了一个大致地了解,并在最后也通过一个示例,了解了如何快速地开启一个简单的服务器。

今儿,再次看了该篇随笔,发现该随笔理论知识稍多,适合初级入门node,固萌生一个想法--想在该篇随笔中,通过一步步编写一个稍大一点的node示例,让我们在整体上更加全面地了解node。

so,该篇随笔是建立在"初探nodeJS"之上的,固取名为"进阶之初探nodeJS"。

好了,侃了这多,那么我们即将实现一个什么样的示例呢?

示例说明,如下:

用户通过url之.0.0.1/login进入登入页面,待用户输入账户名后(密码选项输不输都无所谓,只是为了页面合理),点击提交,进入home页面。

node服务端,怎么处理的呢?通过URL判断,当为/login时,服务端读取login.html的内容,并将其传递到前端显示;当为/home时,服务端读取home.html的内容,并将login.html中提交的账号名与home.html中的模板替换,最后将结果传递到前端显示。

大体流程,如下:

示例最终实现效果,如下:

好了,了解示例需求,下面我们就一起来一步一步实现上述Demo吧。

二、前端文件准备

要实现上述效果,我们首先简单地准备两个页面login.html、home.html以及一张贺岁图片,显而易见,供接下来node读取它们并将它们呈现到浏览器中,使用。

在上述说明中,已讲过node服务器是通过路由来判断,加载哪张页面,固我们将login.html中form的action写作'./home',以达到我们的目的,请求方式嘛,使用的当然是post咯。

且,因为我们要将在login.html中填写的账户名动态地与home.html结合,固home.html中的“称呼”位置,不能写死,因此我们利用{name}来占位,随后利用node动态替换。

好了,简易编写的login.html、home.html以及贺岁图,如下:

三、编写node服务

上述中,我们所需要的前端文件已经准备完毕,接下来就是通过node来编写服务,将它们串联起来咯。

进阶之初探nodeJS(node.js入门教程)

首先,我们搭建一个主文件,取名为main.js吧,作用不言而喻,主入口嘛,如果我们在代码编写完毕后,想要启动服务,就node main.js就OK咯。

如下:

接着,我们就一起来逐步完善这个主文件。

在“前言”中我们提过,当一个请求来到服务中,我们采取获取URL的路径,来判断接下来的操作,已到达降低耦合性的目的。

所以,在主程序中,我们得利用url这个模块,来获得url中的相关路径,并通过正则来得到第一个路径名,通过接下来的路由模块,处理。

如下:

好了,接下来,我们就一起来编写router这个模块吧。

在我们示例中,router无外乎就是处理login、home以及图片请求getPic,所以,我们将router模块基本骨架,暂定如下:

且,我们发现login、home以及getPic这三个操作,有很多共通之处,如都会读取服务端本地文件,以及将读取的文件,写入响应体中,固我们将这些操作提取出来,作为operation模块。

在operation模块中,我们需要使用到node内置'fs'这个模块来读取文件,'fs'模块我们将会用到如下方法:

1、fs.readFileSync--同步读取文件

2、fs.readFile--异步读取文件

3、fs.writeFileSync--同步写入文件

4、fs.writeFile--异步写入文件

需要注意的是,读取图片也就使用的fs.readFileSync/fs.readFile,不过就是第二个参数还需加上'binary',二进制嘛。

operation模块

另外,我们在login.html中提交表单时,使用到了post请求,那么在node服务中应该怎么接收传来的实体呢?

node是采用的监听'data'来接收post方法实体信息,通过'end'来监听接收信息完毕事件。

而,node接收get请求参数就没这么复杂,直接获取url后的查询字符串即可。

好了,我们将获取post、get请求参数,也写为一个模块,取名为getQuery,如下:

getQuery模块

最后,就是在router模块中,引入operation、getQuery模块,完善login、home以及getPic方法咯。

在这里需要注意的是getPic方法,因为是处理的图片,所以响应头得写成'image/jpeg',如下:

res.writeHead(, {'Content-Type':'image/jpeg'});

好了,大致思路已理清,详细代码请见github.

标签: node.js入门教程

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

上一篇:用nodejs搭建websocket服务器(nodejs webp)

下一篇:初探nodeJS(天干地支在择时中的应用初探)

  • 外购产品视同自产产品办理免抵退税的条件?
  • 实际开票金额和申报金额不符
  • 超过缴款期限缴纳税款
  • 对公账户是不是实时到账
  • 筹建期间购买的机械配件
  • 资产负债表其他应收款怎么填列
  • 外贸企业的会计
  • 增值税汇总纳税政策文件
  • 有差价的商品发票如何开具及注意事项
  • 组织职工捐款取得的现金计入什么会计科目?
  • 企业哪些研发费用可以资本化?
  • 海关进口增值税怎么认证抵扣
  • 补缴税款罚款
  • 每月交的社保什么时候到账
  • 安装预算收入
  • 广告业的定额发票可以税前扣除么?
  • 建筑业小规模纳税人税率是3%还是5%
  • 小规模纳税人季报是哪几个月
  • 个人偶然所得捐赠扣除标准
  • 未确认收货可以评价吗
  • 人工工资应该计什么科目
  • 公司名下的房产出租需要交哪些税
  • 出口0税率是免抵退还是免税
  • 收到投资款如何记账
  • window休眠
  • 华为分享是什么意思关闭有影响吗
  • Google Bard VS ChatGPT:哪个是更好的AI聊天机器人?
  • 弥补以前年度亏损怎么填申报表
  • 微信红包如何发出去
  • 蒙特雷景点
  • 企业所得税季度申报数据怎么来
  • 个人所得税减免政策2023
  • php的lamp
  • php框架推荐
  • linux查询ifconfig和cd命令的完整文件名
  • discuz如何关闭站点
  • 没有残疾人就业保障金需要申报吗
  • 弃置费用摊销例题
  • 非营利组织如何才能获得持续稳定的公益捐赠
  • 取得经营所得的个人,有综合所得的是什么意思
  • 加计扣除所得税处理
  • sqlserver 数据集字符集种类
  • 疫情期间社保减免了几个月
  • 银行抵债资产如何更快处置
  • 低值易耗品费用记在什么费用
  • 免费赠送客户入群的文案
  • 长期股权投资损益调整是什么意思
  • 购入固定资产的现金流量项目
  • 税金及附加的核算范围
  • 建筑业分项目核算会计账务处理
  • 报销 增值税专用发票
  • 固定资产竣工前予以资本化吗
  • 加班就餐费如何入账
  • 银行存款明细账借方代表什么
  • 超市购物卡怎么办理
  • sql语句查询去重
  • win10如何固定桌面图标
  • 为什么我的win7系统会变成xp系统
  • ubuntu15.04系统怎么使用卸载命令卸载软件?
  • 借助竹子赞美人物气节的诗句有哪些
  • windowsxp怎么改windows7
  • ubuntu系统安装程序
  • srv32.exe - srv32进程是什么文件 有何作用
  • win7总是弹出广告怎么办
  • win8桌面图片位置
  • w10系统如何安装
  • 数字小键盘不管用
  • 点击滑块是什么意思
  • 笔记本等待网络准备好
  • cssfixed中浮动
  • Python常用时间操作总结【取得当前时间、时间函数、应用等】
  • unity安卓手机游戏官网
  • 介绍一个简单的实验
  • 基于Android的游戏陪玩APP设计
  • JavaScript中的事件处理
  • javascript的含义和作用
  • 税收预测的内容
  • 税务稽查时长
  • 税务总局广西
  • 核定土地增值税的条件
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设