博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Node.js入门介绍
阅读量:7251 次
发布时间:2019-06-29

本文共 1173 字,大约阅读时间需要 3 分钟。

Node是一个针对网络应用开发的平台,它基于Google的JavaScript运行时引擎V8,但它不仅仅只是V8.

Node的标准类库是它非常重要的一部分,它涵盖了从TCP服务端到同步或者异步的文件管理.

Node已经迅速成为一个可行并且真正高效的web开发平台.

在Node诞生之前,在服务端运行JavaScript是件不可思议的事情,并且对其他脚本语言来说,要实现非阻塞I/O通常需要依赖特殊的类库.

JavaScript与非阻塞I/O的组合极为强大:在JavaScript与生俱来的callback特性下,我们能在同一进程中异步地操作文件读写,网络sockets以及其他的I/O操作.

为什么使用Node

假设你正在开发一个广告服务器,每分钟需要发布几百万条的广告.

Node的非阻塞I/O将是一个高效的解决方案,因为服务器能够最大限度的利用到所有的I/O资源,并且不需要开发者写特殊的底层代码.

Node把非阻塞I/O作为提高某些类型应用性能的方式.

JavaScript传统的事件机制意味着在异步编程中,它有着相对方便以及容易理解的语法.
在传统的编程语言中,I/O操作将阻塞进程直到它完成为止.
Node的异步文件读写以及网络API意味着在这些相对较慢的I/O操作处理的时候,主进程仍然能处理其他请求

Node主要特征

Node的主要特性是它的标准类库,模块系统以及npm(包管理系统),当然还有许多其他的.

实际上Node最强大的特性是它的标准类库,它主要由二进制类库以及核心模块两部分组成,二进制类库包括libv,它为网络以及文件系统提供了快速的事件轮循以及非阻塞的I/O.同时它还有http类库,所以你可以很快确定你的http客户端和服务端.
Node的核心模块主要由JavaScript编写,有不清楚的地方,可以直接阅读源码.

Node环境中的关键部分如下图:

图片描述

EventEmitter事件的接口

每个Node开发者都会接触到EventEmitter接口,它是大多数Node核心模块的基础,Stream,网络,文件系统全部继承于它.

高可拓展性I/O的基础

Streams继承于EventEmitters,能被用来在不可预测的输入下创建数据,比如网络连接,数据传输速度取决于其他用户在干什么.

FS:处理文件

Node的文件模块不但可以通过非阻塞的I/O读写文件,而且它也有同步的方法.你可以通过fs.stat异步获取文件的信息,也可以通过fs.statSync同步读取.

网络:创建网络客户端和服务端

网络模块是http模块的基础,也可以用来创建通用的网络客户端与服务端.

全局对象与其他模块

比如process对象,它让你可以把数据传入或者传出标准I/O流(stdout,stdin).

还有无处不在的console对象.

转载地址:http://bqhbm.baihongyu.com/

你可能感兴趣的文章
网站接入微信扫码登录并获取用户基本信息(微信开放平台)
查看>>
HTC VIVE Wave 概览
查看>>
Vue动态控制input的disabled属性
查看>>
TCP的局限性有哪些?
查看>>
【前端数据结构基础】栈
查看>>
沙漠种水稻,88岁的袁隆平又创造奇迹!他参与的“袁米”还有个大计划
查看>>
JS基础入门篇(二十四)—DOM(上)
查看>>
阿里架构师眼里JVM可以说的那些事
查看>>
如何将应用完美迁移至Android P版本
查看>>
对数据科学家来说最重要的算法和统计模型
查看>>
Angular4 反向代理Details
查看>>
AngularJS 过滤器
查看>>
【Ubuntu17.10】【Python】菜鸟新建文件夹、给予777权限、新建一个简单的python脚本测试...
查看>>
2018 浅谈前端面试那些事
查看>>
flutter实战3:解析HTTP请求数据和制作新闻分类列表
查看>>
react onCompositionStart/Update/onCompositionStartEnd 触发时机
查看>>
一个强大的批处理文件
查看>>
基于 Swoole 的微信扫码登录
查看>>
Largest Rectangle in Histogram
查看>>
聊聊pg jdbc的queryTimeout及next方法
查看>>