express 中 Router 的作用+中间件+为什么要进行模块化

245 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第19天点击查看活动详情
一、事件的订阅和发布的设计模式是什么
其实就是收集事件名, 对应的方法体, 当触发对应事件名时, 把事件名对应的所有方法体调用执行一遍

二、express 中 Router 的作用
express.Router 可以认为是一个微型的只用来处理中间件与控制器的 app,它拥有和 app 类似的方法,例如 get、post、all、use 等等。
router 它解决了直接把 app 暴露给其它模块使得 app 有被滥用的风险, 优化路由管理

三、npm 自定义命令在哪里配置
在运行命令时, 所在目录下的 package.json 中的 scripts 字段对应的位置进行配置
key 是 npm run 要执行的自定义命令的名字
value 是 执行自定义命令时, 真正对应的 cmd 命令

四、express 优点、缺点
Express 的优点是线性逻辑:路由和中间件完美融合,通过中间件形式把业务逻辑细分,简化,一个请求进来经过一系列中间件处理后再响应给用户,再复杂的业务也是线性了,清晰明了。
缺点:Express 是基于 callback 来组合业务逻辑。Callback 有两大硬伤,一是不可组合,二是异常不可捕获。

五、什么是中间件
中间件其实就是一个个的函数, 当调用 next 时, 才会执行下一个中间件函数 Express 是一个自身功能极简,完全是路由和中间件构成一个 web 开发框架:从本质上来说,一个 Express 应用就是在调用各种中间件函数。封装了一些或许复杂但肯定是通用的功能,非内置的中间件需要通过安装后,require 到文件就可以运行

六、为什么要进行模块化
目前前端的开发形势就是模块化和组件化;从软件工程学分析来说就是有了更好的可维护性、可复用性等好处;但是前端的主要语言 js 在 es6之前却没有模块化功能,之前有使用 require.js 和 sea.js 但是推出 es6 的模块化之后,es6 的模块化使用形式基本统一