从前端转入 Node.js 的童鞋对这一部分内容会比较陌生,因为在前端中一些简单的字符串操作已经满足基本的业务需求,有时可能也会觉得 Buffer、Stream 这些会很神秘。回到服务端,如果你不想只做一名普通的 Node.js 开发工程师,你应该深入去学习一下 Buffer 揭开这一层神秘的面纱,同时也会让你对 Node.js 的理解提升一个水平。
Node.js是一个流行的开源运行时环境,可以使用V8 JavaScript引擎在浏览器外部执行JavaScript,该引擎与用于支持Google Chrome Web浏览器JavaScript执行的引擎相同。 Node运行时通常用于创建命令行工具和Web服务器。
Node.js=HTML+"JS":性能好,适合于服务器端IO密集型项目,不适合CPU密集型项目
Node.js=HTML+"JS":性能好,适合于服务器端IO密集型项目,不适合CPU密集型项目。
Node里面的buffer,是一个二进制数据容器,数据结构类似与数组,专门用于Node中数据的存放
Node.js 是一个 JS 的服务端运行环境,简单的来说,它是在 JS 语言规范的基础上,封装了一些服务端的运行时对象,让我们能够简单实现非常多的业务功能。
JavaScript 中有一个特殊的对象,称为全局对象(Global Object),它及其所有属性都可以在程序的任何地方访问,即全局变量。
在构建你的第一个Node.js应用程序时,了解node开箱即用的实用工具和API是很有帮助的,可以帮助解决常见的用例和开发需求。
在程序开发中,如何快速的查找定位问题是一项非常重要的基本功。在实际开发过程中,或多或少都会遇到程序出现问题导致无法正常运行的情况,因此,调试代码就变成了一项无法避免的工作。这里简单介绍下如何调试 node.js 程序。
JS 是脚本语言,脚本语言都需要一个解析器才能运行。对于写在 HTML 页面里的 JS,浏览器充当了解析器的角色。而对于需要独立运行的 JS,NodeJS 就是一个解析器。
【导读】:Node.js 是一个开源、跨平台的,用于编写服务器和命令行的 JavaScript 运行时工具。
多行表达式:这里指的是循环,与在 js 中做的循环是一致的。每输出一行回车就可以,node 会自动检测是否为连续多行表达式。
二进制数据就像上图一样,由0和1来存储数据。普通的十进制数转化成二进制数一般采用"除2取余,逆序排列"法,用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。例如,数字10转成二进制就是1010,那么数字10在计算机中就以1010的形式存储。
Node.js的stream模块是有名的应用困难,更别说理解了。那现在可以告诉你,这些都不是问题了。
这些原始数据是存储在buffer类的实例中,一个buffer类就相当于是一个整数数组,他相当于是划出了一块自己的内存空间。
我们都知道 Node.js 是以单线程的模式运行的,但它使用的是事件驱动来处理并发,这样有助于我们在多核 cpu 的系统上创建多个子进程,从而提高性能。
本文主要讨论一些进行Node.js开发的最佳实践和建议,这些建议不仅仅适合开发者,还适合那些管理与维护Node.js基础架构的工作人员。遵循本文提供的这些建议,能够让你更好的进行日常的开发工作。 Statement 原文地址:https://blog.risingstack.com/how-to-become-a-better-node-js-developer-in-2016/ 译者:景庄,Web开发者,主要关注JavaScript、Node.js、React、Docker等。 使用ES2015 在201
本文会接着讲一个常用的中间件----koa-static,这个中间件是用来搭建静态服务器的。
流(Stream)是驱动 Node.js 应用的基础概念之一。它是数据处理方法,用于按顺序将输入读写到输出中。
https://medium.freecodecamp.org/node-js-streams-everything-you-need-to-know-c9141306be93
Node.js 是一个开源与跨平台的 JavaScript 运行时环境。在浏览器外运行 V8 JavaScript 引擎(Google Chrome 的内核),利用事件驱动、非阻塞和异步输入输出模型等技术提高性能。我们可以理解为:Node.js 就是一个服务器端的、非阻塞式I/O的、事件驱动的JavaScript运行环境。
原理: 在window这个全局对象下面,挂载属性,那么全局都可以拿到这个属性的值,原则上一个js文件作为一个模块,就是一个IIFE函数
下载最新版源码:https://nodejs.org/dist/v6.9.5/node-v6.9.5.tar.gz
本文翻译自How to encrypt and decrypt data in Node.js
path模块是Node.js官方提供的,用来处理路径的模块,他提供了一系列的方法和属性,用来满足用户对路径的处理需求。
但在处理像 TCP 流或文件流时,必须使用到二进制数据。因此在 Node.js 中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。
到目前为止,我们已经使用了 JavaScript 语言,并将其运用于单一的浏览器环境中。本章和下一章将会大致介绍 Node.js,该程序可以让读者将你的 JavaScirpt 技能运用于浏览器之外。读者可以运用 Node.js 构建应用程序,实现简单的命令行工具和复杂动态 HTTP 服务器。
仅仅是简单的升级 Node.js 版本就可以轻松地获得性能提升,因为几乎任何新版本的 Node.js 都会比老版本性能更好,为什么?
ECMAScript模块是 JavaScript 的新标准格式。在Node.js中越来越多的库逐渐从从CommonJS转移到ES模块
构建复杂程序的时候,通常会将系统拆解成若干功能,这些功能的之间的接口遵循一定的规范,以实现组合连接,共同完成复杂任务。例如管道运算符 | 。
命令行界面(英语:command-line interface,缩写:CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。
但在处理像TCP流或文件流时,必须使用到二进制数据。因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。
Node.js 是构建 web 应用服务端的一种非常流行的技术选择,并且有许多成熟的网络框架,比如 express, koa, hapijs。尽管如此,在这篇教程中我们不用任何依赖,仅仅使用 Node 核心的 http 包搭建服务端,并一点点地探索所有的重要细节。这不是你能经常看到的一种状况,它可以帮助你更好地理解上面提及的所有框架--现有的许多库不仅在底层使用这个包,而且经常会将原始对象暴露出来,使得你可以在某些特殊任务中应用他们。
主要学习:JavaScript+Node.js内置API模块(fs、path、http等)+第三方API模块(express、mysql等)
用 Dominic Tarr 的话来说:“流是 Node 中最好的,也是最容易被误解的想法。”即使是 Redux 的创建者和 React.js 的核心团队成员 Dan Abramov 也害怕 Node 流。
作者:link 原文:https://nodejs.org/en/docs/es6/ ECMAScript 2015 (ES6) in Node.js(译) Node.js是建立在V8引擎的基础上。通
Node.js是建立在V8引擎的基础上。通过保持对该引擎最新发布版的更新,我们可以确保能够将JavaScript ECMA-262 specification 中的新特性能够及时的提供给Node.js开发者们,就像我们借助该引擎保持性能和稳定性的持续改进一样。 所有ECMAScript2015(ES6)特性被分为 shipping, staged和in progress三个部分:
每个浏览器都内置了DOM、BOM这样的API函数,因此,浏览器中的JavaScript才可以调用它们。
原文链接 你是不是和我一样,对Node.js中的Buffer, Stream, 和 二进制数据一直都是很模糊的印象? 或者有的时候觉得,哎,我会用就行了,这些原理、底层的东西,应该交给Node.js的
ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准。
本文作者:IMWeb link 原文出处:IMWeb社区 未经同意,禁止转载 原文:https://nodejs.org/en/docs/es6/ ECMAScript 2015 (E
node.js中,各种模块有一种标准的写法: this._process.exec(command, options, function (err, stdout, stderr) { callback(err, stdout, stderr); }) 这里说的标准,是指回调函数,一般有err作为第一个参数,然后是具体的数据。 写服务器程序的时候,或多或少会用到child_process这个模块,而这个模块的用法正如上边代码所示。 例如调用一个shell命令删除文件,
如果开发过node.js的话应该对js(javascript)非常熟悉,TypeScript(以下简称ts)是js的超集。
通过Edge.js项目,你可以在一个进程中同时运行Node.js和.NET代码。在本文中,我将会论述这个项目背后的动机,并描述Edge.js提供的基本机制。随后将探讨一些Edge.js应用场景,它在这
ArrayBuffer 对象用来表示通用的、固定长度的原始二进制数据缓冲区。ArrayBuffer 不能直接操作,而是要通过类型数组对象 或 DataView 对象来操作,它们会将缓冲区中的数据表示为特定的格式,并通过这些格式来读写缓冲区的内容。
当你第一次接触工程化的项目时,看到项目控制台正在 building,过一会突然跳出一个 URL 地址,你点开它居然是你刚写好的网页,好神奇。
Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。
本文翻译自Base64 Encoding and Decoding in Node.js
领取专属 10元无门槛券
手把手带您无忧上云