美文网首页我爱编程
node.js学习笔记(一)

node.js学习笔记(一)

作者: 啥名都不好起 | 来源:发表于2018-06-01 17:32 被阅读51次

    作为一名前端开发人员,我对于前端的基础的HCJ和基本的三大框架(angular、react、vue)已经了解的差不多了,接下来希望向全栈发展。从前端向全栈发展,首先要有一定的后端基础,其次,也是最关键的,学习一门后端语言,而我的选择是node。我选择node有以下几个原因:

    1、node是基于JavaScript的,对于一个纯前端来说比较容易上手,同时因为JavaScript是单线程的,所以node也是单线程,适用于解决服务器端的高并发问题,一般用于配置高性能的服务器

    2、node是基于Chrome V8引擎作为解释器的,有Google作为强大的后台,后期服务有保障(原谅我打了个广告)

    3、node是非阻塞I/O、事件流驱动的,处理事务效率快,但是比较吃性能(什么是非阻塞?通俗说就是异步)

    接下来是正文了!

    第一步肯定是下载并全局安装node了,下载地址:https://nodejs.org/zh-cn/,完成后可以node -v查看当前版本

    我学习node是为了能够方便我前后端同构,那接下来我希望使用node去暴露一个接口,通过node中文API了解到node的功能是需要依赖一个个的核心模块来完成的,所以我们要暴露或者说监听一个接口时需要引入http模块,通过http的createServer方法来新建一个服务。

    回调函数中的req是请求对象,res是响应对象,通过writeHead来设置头文件,通过res.write()返回东西到前端,使用res.end()结束这次请求,如果不结束的话,这次请求会一直处于pending中。这里值得一提的是头文件的设置,node中文API中有两个方法可以设置请求头,一个就是res.write()这个相当于是默认的,就算你没有调用它,但只要你进行了一些数据交互的操作的话就会隐式调用这个方法设置请求头;另一个方法是res.setHeader(),这个方法同样也是设置请求头,但是这个方法只会设置单一的请求头,并且,当两个方法同时调用时,两个请求头会合并成一个,同时res.writeHead的权重要高。所以,在合并时是setHeader合并到writeHead中,后面再看官方文档就有点蒙了,不过,这里我有一个猜想:首先,两个方法都可以设置请求头;其次,writeHead的权重高于setHeader;最后,在两个方法同时使用时,是将setHeader合并到writeHead中。那么我是不是可以认为在调用writeHead的时候,writeHead去调用了setHeader,或者说setHeader是writeHead的一部分,setHeader设置的是请求头,而writeHead设置的是请求的头文件。当然这只是我的一个猜想,node中文API上我也暂时没找到具体的说明去验证这个猜想,留到后面看吧,今天就先到这里了。

    相关文章

      网友评论

        本文标题:node.js学习笔记(一)

        本文链接:https://www.haomeiwen.com/subject/vaeksftx.html