NodeJS

原创 2016年08月31日 11:01:00

Node.js 是服务器端的 JavaScript 运行环境,它具有无阻塞(non-blocking)事件驱动(event-driven)等的特色,Node.js 采用 V8 引擎,同样,Node.js 实现了类似 Apache 和 nginx 的web服务,让你可以通过它来搭建基于 JavaScript 的 Web App。" 

NodeJS被设计用来解决服务端阻塞问题.

首先需要一个高效的JS引擎,高效的事件池和线程池.另外几乎所有和NodeJS交互的传统模块如文件系统,数据访问,HTTP解析,DNS解析都是阻塞式的,都需要额外改造.

样作为前端开发,不得不再插几句,说说服务端JS能够解决的另一个问题: 
        当前的Web开发前后端使用不同的语言,很多相同的业务逻辑要前后端分别用不同语言重复实现.比如越来越多重度依赖JS的胖客户端应用,当客户浏览器禁用JavaScript时,则需要使用服务端语言将主业务流程再实现一次(这即是所谓的"渐进增强"). 
        当我们拥有了服务端JavaScript语言,我们自然就会想到能否利用NodeJS做到"一次开发,渐进增强".解决掉这个为小量用户,浪费大量时间的恼人的问题.我们先要解决问题,这是使用NodeJS的最大动力.基于之前的统计,因为各种原因浏览器不支持JS的用户大概接近1%,至少淘宝绝对不会主动放弃这部分用户.至于在服务端也使用JS是否能够替掉LAMP架构,抑或NodeJS会对常见MVC架构带来何种冲击,V/C这些层是否能在前后端任意流动这些问题都是NodeJS解决问题后带来的额外话题. 

­
Node.js 从来不是用于解决大规模计算问题而创建的。它的出现是为了解决大规模I/O 的问题,并且在这一点上做的非常好
­
使用 Node.js 你可以得到很高的吞吐量,每个请求都作为一个小任务非常迅速和高效地处理

简单的说 Node.js 就是运行在服务端的 JavaScript。
Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。
Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。

NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
  • 允许用户从NPM服务器下载别人编写的第三方包到本地使用。
  • 允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
  • 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
由于新版的nodejs已经集成了npm,所以之前npm也一并安装好了。同样可以通过输入"npm -v" 来测试是否成功安装

$ npm config set proxy null

本地安装
  • 1. 将安装包放在 ./node_modules 下(运行 npm 命令时所在的目录),如果没有 node_modules 目录,会在当前执行 npm 命令的目录下生成 node_modules 目录。
  • 2. 可以通过 require() 来引入本地安装的包。
全局安装
  • 1. 将安装包放在 /usr/local 下或者你 node 的安装目录。
  • 2. 可以直接在命令行里使用。

Node.js REPL(Read Eval Print Loop:交互式解释器) 表示一个电脑的环境,类似 Window 系统的终端或 Unix/Linux shell,我们可以在终端中输入命令,并接收系统的响应。
node
Node 的交互式解释器可以很好的调试 Javascript 代码。
前面我们已经提到按下两次 ctrl + c 建就能退出 REPL:

Node.js 异步编程的直接体现就是回调。
异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了。
回调函数在完成任务后就会被调用,Node 使用了大量的回调函数,Node 所有 API 都支持回调函数。
例如,我们可以一边读取文件,一边执行其他命令,在文件读取完成后,我们将文件内容作为回调函数的参数返回。这样在执行代码时就没有阻塞或等待文件 I/O 操作。这就大大提高了 Node.js 的性能,可以处理大量的并发请求。

JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。
但在处理像TCP流或文件流时,必须使用到二进制数据。因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。

REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。

Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。
基于 REST 架构的 Web Services 即是 RESTful。


版权声明:本文为博主原创文章,未经博主允许不得转载。

nodejs入门之使用nodejs展示一个网页

一个网页的内容其实就是一段字符串,response.write()可以接受一个字符串作为参数,所以很明显只需要把一个网页的内容作为参数传递给response.write()即可。例如: var h...
  • zxsrendong
  • zxsrendong
  • 2013年11月18日 14:54
  • 56683

Node.js 对图片进行裁切、缩放

GM : GraphicsMagick for node.js First install either GraphicsMagick or ImageMagick. Then: > npm i...
  • u011568269
  • u011568269
  • 2013年08月02日 16:17
  • 8360

【旧代码整理】Nodejs的另类用法

Nodejs 的中文维基百科介绍:https://zh.wikipedia.org/wiki/Node.js Nodejs 可以 在linux命令行执行js代码。 比如: var a = 1; ...
  • joyatonce
  • joyatonce
  • 2016年07月16日 10:39
  • 1279

5分钟掌握nodejs所有功能使用。

1、nodejs简介:运行在服务端的javascript。  2、安装配置:下载文件,安装window,linux。  3、npm工具:nodejs随同安装的包管理工具。远程,全局,本地。  4、RE...
  • familyGo
  • familyGo
  • 2016年12月07日 15:41
  • 860

NodeJS无所不能:细数10个令人惊讶的NodeJS开源项目

在几年的时间里,NodeJS逐渐发展成一个成熟的开发平台,吸引了许多开发者。有许多大型高流量网站都采用NodeJS进行开发,像PayPal,此外,开发人员还可以使用它来开发一些快速移动Web框架。除了...
  • man_tutu
  • man_tutu
  • 2017年02月15日 10:33
  • 447

Nodejs扩展,实现消息弹窗

Nodejs扩展,实现消息弹窗
  • iCode0410
  • iCode0410
  • 2014年10月12日 19:56
  • 1706

一步一步讲解安装NodeJs开发环境

安装环境Win7 X64首先在NodeJS官方网址(https://nodejs.org/)下载安装包,NodeJS官网会自动根据电脑操作系统下载适应于本系统的安装包。当前的安装版本: v0.12.7...
  • itpinpai
  • itpinpai
  • 2015年08月30日 13:06
  • 16327

nodejs的一些核心概念

本文参考这里1. 事件循环java的同步执行模式:System.out.println("Step: 1"); System.out.println("Step: 2"); Thread.sleep(...
  • bdss58
  • bdss58
  • 2016年05月16日 22:20
  • 1535

Nodejs操作MongoDB数据库示例

//mongodb_demo.js/** cnpm install mongodb */var MongoClient = require('mongodb').MongoClient; var D...
  • pukuimin1226
  • pukuimin1226
  • 2017年06月17日 11:51
  • 818

nodejs做成服务

一、先弄到两个小工具(微软自已出的小工具): srvinstw.exe srvany.exe 本文附件里有这两个工具 http://download.csdn.net/detail/shaos...
  • shaoshuaiqilin
  • shaoshuaiqilin
  • 2016年04月27日 16:31
  • 952
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:NodeJS
举报原因:
原因补充:

(最多只允许输入30个字)