那咱就来讲讲这 .js 中间件开发实战!首先,啥叫 .js 中间件?它可是个高阶函数,能去访问请求对象、响应对象咧。在 Web 应用里它处于请求响应循环流程中间还被命名成变量 next 。要是没终结这流程,那就必须得调用 next() 方法,把控制权交到下一个中间件那儿去,不然请求可就挂起了,麻烦得很!
那 .js 中间件都有啥功能?其一能修改请求和响应对象;其二,可以终结请求响应循环体;其三,就是调用堆栈里的下一个中间件
咱接着来讲讲开发的事咧。咱可以把开发分成这么几个模块来讲
1. 开发步骤
第一步得先创建 应用就跟搭房子先打地基一样。代码一般这么写呢:var = (”) ,var app = () 。这两句就好比搭好地基,之后才能接着往上盖房
第二步咱需要开发自己的中间件。就像咱可以先把基础的记录日志的中间件开发出来。比方说日志中间件 ,要接收一段提示信息当作参数。咱可以写一个文件叫做 .js ,在这里头创建这个中间件函数咧。咱看看下面这代码
. = () {
(req, res, next) {
.log(, req., req.url);
next();
};
};
这里头 就是传进来的那段提示信息,然后记录下了请求方法还有请求的 URL ,最后调用了下
next()
方法,这样呢就能转移控制权
第三步,如果你用开发服务器方面的中间件,那么使用 .
中间件用来指定它的根目录,应用静态资源就靠这个来管理咧,咱就拿开发普通的网页来说可以使用类似这么写的代码:app.use(.(‘.’)) 。
第四步,如果涉及需要做用户层面的管理时,你会需要用 的功能,这时候用 – 就再好不过!就像这样写的 ((‘-‘)) ,到这里基本雏形就有了。
第五步,那会话管理上得进一步进行开发。就跟上上一步 有依赖,我们有封装 的这么一个 .js文件,对会话管理功能集中打包,在这里我们配置会话的详情如会话超时时间、加密密钥等等,然后类似其他中间件配置一般写配置配置完了,这么写: app.use(()) 就生效。
第六步咧,表示会话管理好了之后,基本这个服务能算是能用的状态,接下来要编写代码用于处理来自外部调用的 URL路径,这个就可以采用模块化处理。咱一般会把它放到一个单独文件去保存,例如 .js 的这么个文件,但需要在主文件里做基本配置表示我们路径处理在别的文件里
2. 配置步骤
先给大家提个概念,为啥要有这么一环。刚才我们也说到,咱 需要用到各式各样功能不同的中间件,无论是内置的,还是上面所说自己实现的,但需要让这堆配置集中统一管理。接下来就进入到配置环节咧。其一,可以定义响应格式可以有哪些;其二设定模板引擎,咱们一般开发网站页面可能都会存在页面渲染、套用模板或者参数之类,当用到 ejs、、pug 这类的就直接做对应的配置就行;其三,可以设置静态资源,要是没有引用静态资源一般页面会丢失样式;其四,路由地址这块的逻辑配置,这块配置基本用于设置 服务器运行之后默认能通过哪个网址哪个端口进入整个 .js 程序里;那最后一步就是启动监听与开发。到这块咱们就能测试看中间件实际效果如何,开始做更多的调试。
我这还有些大家比较关心的问题咧,给大家回答回答
问答环节
问:开发中间件只能写成独立文件形式
答:也不是非要写成独立文件形式。我们完全可以将它写在需要使用的文件中,以闭包或者封装对象方法、定义函数都行。但是把它弄成独立文件,可以提高咱代码的使用效率、还干净整洁不乱。当然像 、 这种是需要通过 方法导入,就用文件进行打包是最优 。
问:我自己开发的中间件有很多内部函数或者变量,不希望外部其他的人引用,应该怎么处理?
答:你,搞中间件的时候,用闭包不就行了!在中间件函数里边整若干个局部变量、函数,它们就在这个中间件函数里边作用,外边可没有办法使用的。就像下面这么弄:
. = () {
var = ;
(req, res, next) {
(); //可以执行闭包私有方法
//…更多操作
next();
};
() {
//里面的代码就是隐藏内部的逻辑
++;
}
};
`
这样子,这个中间件就藏着一些不让别人乱动的功能。别人访问不进来,只有自己中间件内部用得到。这样这中间件核心东西别人拿不走,能保证咱们代码自己安全又独立,按照自己的逻辑正常跑,是个挺实用的法子
我觉着,开发 .js 中间件就像一场搭建积木的冒险旅程,只要按照步骤来操作,遇到问题多琢磨琢磨,就一定能成功搭建出属于自己的优秀应用程序。