APP下载

Node.js后端技术初探

2020-09-24张钊源刘晓瑜鞠玉霞

张钊源 刘晓瑜 鞠玉霞

【摘  要】通过对Node.js建立后端服务器的介绍,引出其建站优势与Web前端的契合特点。

【Abstract】Through the introduction of Node.js back-end server, this paper draws out its advantages in station construction and the characteristics of Web front-end.

【关键词】JavaScript;Node.js;Express框架

【Keywords】JavaScript; Node.js; Express framework

【中图分类号】TP311.5;TP393.0                             【文献标志码】A                                【文章编号】1673-1069(2020)08-0193-02

1 引言

全栈开发离不开服务器的搭建,近年来Node.js以其高密度开发的优点在服务器开发中崭露头角。基本的网站开发能力包含服务端、前端、运维部署等。本文引进一简单实例来阐述利用Node.js开发Web服务器的基本思路。

2 Node.js功能概述

首先,Node中的js有读写文件的操作能力,弥补了浏览器不能直接操作本地文件的缺点。通过引入fs核心模块,如使用require方法加来载fs核心模块,此外Node还提供了核心模块http,来创建服务器。Node.js可用于构建不同类型的应用程序,如命令行应用程序、Web应用程序、实时聊天应用程序、REST API服务器等。但是,它主要用于构建网络程序,如Web服务器。值得注意的是,response可以用来给客户端发送相应数据,可以使用多次但最后一次需要使用end来结束响应。

3 信息递送提交

3.1 初步实现Apache

启动节点外壳,打开命令提示符或终端,然后键入节点。然后创建请求:Server,监听Server的请求并设置请求处理函数(请求、处理、响应、一个请求对应一个响应,若响应结束则不可以重复发送),之后实现目录列表,渲染来减轻前端压力(替换字符串如data=replace('---','替换名称')减轻了前段的压力),读取目的路径的相关文件并在客户端显示,可以在HTML5里面替换相关名称。最后制作留言表回馈,哪些资源可以被用户访问,哪些不能,可以自由控制,为了统一管理静态资源,将相关的资源全部放进某一文件夹里面。

在浏览器中,全局范围是窗口。在Node中,全局对象代表全局范围。要在全局范围内添加某些内容,需要使用export或module.export将其导出。以相同的方式,使用require导入模块以从全局范围访问它。关于用户提交的内容,注意虽然内容变化但是形式不会变化,所以只需要判断/pinglun,来判断用户的表单请求来了没有。emit函数会引发指定的事件。 参数一是事件的名称,为字符串,然后为参数。可以使用零个或多个参数来发出事件。可以在函数中为自定义事件指定任何名称。

3.2 Express框架

不再需要if判断来实现/路径,直接在Express.get里面写就行了,send内容是中文时,也不用切换格式了,直接写进去就行。非常方便,404都不用写。该应用程序对象包括用于路由HTTP请求,配置中间件,呈现HTML视图和注册模板引擎的方法。监听函数在指定的主机和端口上创建b服务器。它与监听请求函数的方法相同。

4 第三方模块

凡是第三方都需要npm加载,使用的时候require(‘包名)。我们在使用require()函数导入了Express.js模块。Express模块返回一个函数。此函数返回一个对象,该对象可用于配置Express应用程序。该应用程序对象包括用于路由HTTP请求,配置中间件,呈现HTML视图和注册模板引擎的方法。作为一个默认备选,可以应用作业队列,作业队列是为了解决一个特定的问题,通常要做的事情比单个Node.js流程可以立即处理的更多,因此,可以“排队”处理要处理的事情,甚至可以将它们分配给其他流程来处理。

5 回调函数

引入npm包,初始化package.json。通过提示符进入向导,其中最有用的信息是depenencies信息,来保存第三包信息,这就需要在安装第三方包的时候都得加上save来保存依赖项信息。所以有了这个包,模块丢失无妨,可以在package.json这个文件里找到depenencies的依赖项。异步函数:代码执行过程中不会等待定时器,哪怕定时零秒,为单线程。当执行异步api时,不会等待。所以不能在函数内部直接返回函数值,返回undefined。

对于日常使用,模块使我们可以从较小的部分组成较大的程序。它们共同定义了模块,成为了更大的软件的基本构建模塊。在幕后,模块通过名为模块的对象来跟踪自身。因此,模块是指代的对象。其中GruntJS包括用于各种任务的插件。例如,只要应用程序中的任何Js文件发生更改,插件都会自动重新启动节点服务器。因此,不必在每次修改Js时都手动停止并重新启动节点服务器。该插件可用于压缩CSS文件也可用于格式化,搜索或重写应用程序中的Js。Node.js中非常基本的会话的身份验证是验证用户是否确实被声明为谁的过程。 授权是确定用户是否具有访问他/她请求的资源的特权的过程。验证是服务器给的,所以这样就很安全,不太容易伪造出来。这个时候我们就可以包一些敏感的数据保存到服务端。客户端只需要拿着这把钥匙就可以了。对于Node中的非模块成员使用Node打开时,在Node的目录(执行Node命令的路径)下找这个文件,只需要把相对路径替换为绝对路径(动态获取不受执行Node命令所属路径影响,用Export引出对象,在a文件中用b的成员时,需要使用Exports将成员接出。默认情况下,它包含在应用程序的每个Js文件中。这样的话我们就可以利用不同的请求方法让一个请求路径使用多次,注意req.query只能拿get函数请求的参数。

6 信息管理

引入路由,下面列出了在Node.js中实现路由的两种方法。使用框架:Node具有许多框架来帮助启动和运行服务器。 Express框架具有一个与服务响应对应的对象,所以建议在次框架下应用路由。当处理添加页面时,注意这里的重定向是在点击提交之后直接回到初始并编写保存数据的函数。获取信息函数的参数一值永远为空,第二个值为拿到列表的数据;根据id获取信息对象(在这里可以定义findById一个参数是为了拿到ID)。注意函数的更新功能:使用时必须将id统一转换为数字类型,要修改谁,就需要把谁找出来。当某个遍历项符合既定条件时,就将对象数据转换为字符串。

以物流信息管理系统为例,如图3所示。

7 结语

JavaScript基本上被用作Web前端开发工具,并被证明是构建跨开发平台的重要工具。而Node.js在Web开发的这一重大转变中起了重要作用。它使开发人员可以用Js编写服务器端应用程序。人们可用Js编写前端和后端Web应用程序,而且不需要使用任何其他服务器端编程语言。这些优势使建立服务器变得比较容易。

【参考文献】

【1】吴春玲,刘广伟,程淑伟.基于Node.js的河道排污监测管理平台的设计与实现[J].工业控制计算机,2018(10):121-122.

【2】朱晓阳,刘苑如,范仲言.基于Node.js的学习平台后端系统设计与实现[J].电脑知识与技术,2019(13):116-118.

【3】王伶俐,张传国.基于NodeJS+Express框架的轻应用定制平台的设计与实现[J].计算机科学,2017,44(S2):606-609.