博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Node.js 指南(关于Node.js)
阅读量:6171 次
发布时间:2019-06-21

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

关于Node.js

作为异步事件驱动的JavaScript运行时,Node旨在构建可伸缩的网络应用程序,在下面的“hello world”示例中,可以同时处理许多连接,在每次连接时都会触发回调,但是如果没有工作要做,Node将会休眠。

const http = require('http');const hostname = '127.0.0.1';const port = 3000;const server = http.createServer((req, res) => {  res.statusCode = 200;  res.setHeader('Content-Type', 'text/plain');  res.end('Hello World\n');});server.listen(port, hostname, () => {  console.log(`Server running at http://${hostname}:${port}/`);});

这与目前使用OS线程的更常见的并发模型形成对比,基于线程的网络效率相对较低且非常难以使用,此外,Node的用户不必担心死锁,因为没有锁。Node中几乎没有任何函数直接执行I/O,因此进程永远不会阻塞,由于没有任何阻塞,可扩展系统在Node中开发非常合理。

如果不熟悉这种语言,有一篇关于的完整文章。

Node在设计上与Ruby的或Python的等系统类似,并受其影响,Node进一步采用事件模型。它将事件循环呈现为运行时构造而不是库,在其他系统中,始终存在阻塞调用以启动事件循环。通常,行为是通过脚本开头的回调来定义的,最后通过阻塞调用来启动服务器,如EventMachine::run()。Node在执行输入脚本后简单地进入事件循环,当没有更多回调要执行时,Node退出事件循环,此行为类似于浏览器JavaScript — 事件循环对用户隐藏。

HTTP是Node中的一等公民,设计时考虑了流媒体和低延迟,这使得Node非常适合Web库或框架的基础。

仅仅因为Node没有线程设计,并不意味着你无法利用环境中的多个核心优势,子进程可以通过使用我们的child_process.fork() API生成,并且设计为易于与之通信,基于相同的接口构建的是群集模块,它允许你在进程之间共享sockets,以便在核心上实现负载平衡。


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

你可能感兴趣的文章
Cocos-2d 坐标系及其坐标转换
查看>>
LAMP网站的CACHE机制概要
查看>>
[MySQL 5.6] 5.6新参数slave_rows_search_algorithms
查看>>
ESXi5.1嵌套KVM虚拟化环境支持配置
查看>>
爬虫的小技巧之–如何寻找爬虫入口
查看>>
JVM学习(二)垃圾收集器
查看>>
为hexo博客添加基于gitment评论功能
查看>>
java 库存 进销存 商户 多用户管理系统 SSM springmvc 项目源码
查看>>
Flutter - Drawer 抽屉视图与自定义header
查看>>
ERP系统的优势_库存管理软件开发
查看>>
如何内行地评价公链(一)从真正的不可能三角谈起
查看>>
BigDecimal 详解
查看>>
Shell实战之函数的高级用法
查看>>
NASA制做模拟系外行星环境 发现了热木星大气不透明的原因
查看>>
Slog67_后端框架Skynet之Makefile解读
查看>>
iOS ShareSDK桥接技术
查看>>
BAT面试须知:Java开发的招聘标准
查看>>
WeUI for 小程序–使用教程
查看>>
[vuex] unknown action type
查看>>
深入浅出 Java 并发编程 (1)
查看>>