node.js一些自己的理解

express是基于node.js的一个框架,保留了一些nodejs原生的api并且新增了一些api

app=express()

app称应用,app.user()调用的是npm的express插件,也可以给非指定method的自定义中间件使用,

app.get/post只能处理get请求,并且只能用自定义中间件,不能用npm中间件

app.get与router.get都是一个样,只是router是为了不让代码挤在一个js文件而弄出的。所以api一模一样

任何应用级方法,路由级方法,比如user,get都支持n多个中间件连写。

猜测:所以指定同一路由的user函数等,都会执行,只到遇到res流

至于require的npm插件,调用app.user(),就可以把这个中间件参数扩展到req对象里,任何后面的中间件req里都可以获取值

只是纳闷,为什么是req?

req在node.js中,写的权限应该是浏览器,读的权限应该是服务器(猜测),为什么express可以给服务器与写req对象的权限?(有了一个猜想)

猜想:express的npm包,不应该理解成扩展,恰恰相反,应该是还原,还原http协议里本来就有的,不过被node.js环境req对象舍弃了。因为一开启user,加载multer,就可以读到二进制文件,而浏览器没有改动,显然,是本来就该有的功能被打开了,而且相应的res流也打开了相应的属性,至于要不要传到浏览器,由express,还是用户决定?

显然,只要阅读http协议相关书籍或者浏览器相关底层封装,就能知道我这个猜想对不对。

不管对不对。目前来说,还算严谨

图片发自App

你可能感兴趣的:(node.js一些自己的理解)