Node所针对的应用程序有一个专门的简称:DIRT。它表示数据密集型实时(data-intensive real-time)程序

简单的异步程序

下面是用文件系统( fs )模块从硬盘中 加载resource.json

这段程序要从硬盘里读取resource.json文件。当所有数据都读出来后,会调用那个匿名函数 (即“回调函数”),传给它的参数是 er (如果出现错误)和 data (文件中的数据)。

Hello World HTTP服务器

Node常被用来构建服务器。有了Node,创建各种服务器变得非常简单。我过去习惯于 把程序部署到服务器中运行(比如把PHP程序放到Apache HTTP服务器上),可能会觉得这种方式 很怪异。在Node中,服务器和程序是一样的。

下面是个简单的HTTP服务器实现,它会用“Hello World”响应所有请求:

只要有请求过来,它就会激发回调函数 function (req, res) ,把“Hello World”写入到 响应中返回去。这个事件模型跟浏览器中对 onclick 事件的监听类似。在浏览器中,点击事件随 时都可能发生,所以要设置一个函数来执行对事件的处理逻辑,而Node在这里提供了一个可以随 时响应请求的函数。

下面是同一服务器的另一种写法,这样看起来 request 事件更明显:

流数据

用数据流的方 式来处理resource.json:

只要有新的数据块准备好,就会激发 data 事件,当所有数据块都加载完之后,会激发一个 end 事件。

Node中也有可写数据流,可以往里写数据块

如何把一张图片流到客户端:

数据从文件中读进来( fs.createReadStream ),然后数据随着进来就被 送到( .pipe )客户端( res )。在数据流动时,事件轮询还能处理其他事件

转载于:https://juejin.im/post/5c2c5ff0f265da61117a68e4

node基础---02DIRT程序相关推荐

  1. 构建node.js基础镜像_在Android上构建Node.js应用程序

    构建node.js基础镜像 by Aurélien Giraud 通过AurélienGiraud 在Android上构建Node.js应用程序-第1部分:Termux,Vim和Node.js (Bu ...

  2. 开发笔记13 | 部署 Node.js 应用程序到云 ECS

    <<系列文章集 前言 在之前的一篇文章中,我们介绍了 如何将一个本地的 Java 应用程序直接部署到阿里云 ECS ,有不少读者反馈,在本文中,我们来介绍如何部署 Node.js 应用程序 ...

  3. package.json在Node JS应用程序中的重要性

    Before starting Node JS applications development, we should learn some basics and importance of pack ...

  4. 小程序动画从头开始_如何从头开始在Kubernetes上部署弹性Node.js应用程序

    小程序动画从头开始 视频 (Video) 描述 (Description) You may have heard the buzz around Kubernetes and noticed that ...

  5. 带你入门nodejs第一天——node基础语法及使用

    带你入门nodejs第一天--node基础语法及使用 带你入门nodejs第二天--http 模块化 npm yarm 带你入门nodejs第三天-express路由 带你学习nodejs第四天--身 ...

  6. Node.js高级编程【一】node 基础

    目录 一.Node 基础 1.课程概述 2.Node.js 架构 3.为什么是Node.js ? 4.Node.js 的 异步IO 5.Node.js 主线程是单线程 6.Node.js 应用场景 7 ...

  7. node基础及模块化

    目录 前言: 命令行 进程和线程 node简介 运行node.js Node.js 从命令行接收参数 exports npm fs文件系统模块 http模块 IP 地址 域名和域名服务器 创建 web ...

  8. EntityFramework 基础提供程序在 Open 上失败。

    问题 System.Data.EntityException: 基础提供程序在 Open 上失败. ---> System.Data.SqlClient.SqlException: 在与 SQL ...

  9. 如何调试Node.js应用程序?

    如何调试Node.js服务器应用程序? 现在,我主要使用带有以下打印语句的警报调试 : sys.puts(sys.inspect(someVariable)); 必须有更好的调试方法. 我知道Goog ...

  10. python基础代码事例-Python简单基础小程序的实例代码

    1 九九乘法表 for i in range(9):#从0循环到8 i += 1#等价于 i = i+1 for j in range(i):#从0循环到i j += 1 print(j,'*',i, ...

最新文章

  1. python判断素数的函数_Python素数prime函数练习_Python源码实操
  2. Android --- 刚刚进入 Activity 页面的时候无法打开对话框,报错 Unable to add window -- token null is not valid; is your
  3. 关于导入项目eclipse出现乱码的问题
  4. 地壳中元素含量排名记忆口诀_广州地化所等发现洋内弧大陆地壳成熟新机制
  5. linux脚本大全,shell大全
  6. 两层卷积网络实现手写数字的识别(基于tensorflow)
  7. 这可能是目前最好的图像超分辨率算法,刚刚开源了
  8. 奥飞娱乐:贝肯熊和镇魂街盲盒产品计划于2021年下半年上市
  9. 人生真是圆的,从BASIC开始的程序人生,又回到了BASIC,难道。。。。。
  10. unity3D禁用脚本
  11. Web后端开发入门(1)
  12. C++ 酒店管理系统
  13. 在MySQL中设计新闻网站_基于MySQL新闻搜索引擎的设计与实现
  14. javascript中用switch判断今天星期几
  15. 了解Java的反射机制
  16. 牛客 F - 爬塔 (分组背包)
  17. 小酷智慧地图3D导览v1.0.87打卡定位 地图打卡
  18. bzoj1412: [ZJOI2009]狼和羊的故事(最小割)
  19. iOS Auto Layout界面自动布局(2)
  20. c语言timer linux 回调函数_SetTimer 与回调函数

热门文章

  1. SQL练习题——店铺UV、访客信息
  2. 人工智能对数据分析师的影响
  3. wpf自己画表盘_练手WPF(一)——模拟时钟与数字时钟的制作(上)
  4. 开心网创始人兼CEO程炳皓
  5. php乘法表颜色渐变图片,用标准标签库写的九九乘法表(带渐变颜色)
  6. tplink查看上网记录_TPLINK路由器控制面板查看运行状态详解
  7. 【PAT】敲笨钟 (20 分)
  8. 基于Retrofit框架的金山API翻译功能案例
  9. 秀米的编辑的图片无法显示
  10. 共享打印机无法访问计算机,win7系统文件夹和打印机共享后无法访问的解决方法...