Node.js 指南(关于Node.js)

发布时间:2019-07-16 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Node.js 指南(关于Node.js)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

关于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 Worldn');
});

server.listen(port, hostname, () => {
  console.log(`Server running at http://${hostname}:${port}/`);
});

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

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

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

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

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


上一篇:Node.js 指南(目录)

下一篇:入门指南

脚本宝典总结

以上是脚本宝典为你收集整理的Node.js 指南(关于Node.js)全部内容,希望文章能够帮你解决Node.js 指南(关于Node.js)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。