什么是Node.js

首先Node.js是2009年诞生的,已经发展了这么多年,其成长与发展速度是有目共睹的。

名字

随着Node.js的发展,网上的报道越来越多,所以其叫法也是五花八门,有的叫Node,也有的叫Nodejs。但是在其官网上,一直将该项目称之为Node或者Node.js。由于Node的语义太多,所以我们将其称之为Node.js。js后缀是点缀该项目的本意。

Node.js不是js应用,而是js的运行环境

刚一听到这个名字,许多人就认为这是一个Javascript应用,其实不然,Node.js是一个Javascript的运行环境。作为前端最重要的语言Javascript,一直都是前端工程师的专利,不过Node.js是一个后端的Javascript运行环境。这就意味着你可以使用Javascript来编写后台代码,然后交给Node.js来解释执行。

简单的命令就是 #node hello.js

Node.js采用了Chrom V8引擎,性能很好,并且提供了很多API。浏览器端的Javascript在运行时会受到很多限制,对客户端系统的操作有限。而Node.js是一个全面的Javascript后台运行时,为Javascript提供了很多其他语言可以实现的功能。

Node.js

Node.js的设计思想中以事件驱动为核心,它提供的绝大多数API都是基于事件的、异步的风格。使用Node.js开发的人员,需要根据自己业务的逻辑来注册相应的回调函数,这些函数的调用都是异步的,这就使得虽然在代码结构中函数看起来是依次注册的,但是他们并不会依赖自身出现的顺序,而是等待相应的事件去触发它。

事件驱动,异步编程的优势在于,它充分的利用的系统资源,执行代码无须阻塞等待某一代码或某一操作执行完成,有限的资源可以用于执行其他的任务。这样设计是非常有利于后端的网络服务开发,Node.js的目标也在于此。在服务器中,对并发的请求处理一直是个大问题,但是使用Node.js这种事件触发,异步编程可以很大的改善开发人员的效率,性能也会改善。

```

var http = require(‘http‘);
http.createServer(function (req, res) {
    res.writeHead(200, {‘Content-Type‘: ‘text/plain‘});
    res.end(‘Hello World\n‘);
}).listen(80, "127.0.0.1");

```

这是一个在本地搭建服务器的例子,从这个例子可以看出:

  • Node.js的网络编程比较便利,提供的模块(在这里是http)开放了容易上手的API接口,短短几行代码就可以构建服务器。
  • 体现了事件驱动、异步编程,在createServer函数的参数中指定了一个回调函数(采用Javascript的匿名函数实现),当有http请求发送过来时,Node.js就会调用该回调函数来处理请求并响应。

Node.js的优点

上边提到的事件触发,异步编程就算是Node.js的特点。

Node.js的另一个特点是:它所支持的语言为Javascript。

  • Javascript作为前端工程师的主力语言,有着很强的号召力。并且web技术的高速发展,使前端的重要性增加,大多数人表示因为习惯了Javascript,所以使用Node.js。
  • Javascript的匿名函数与闭包函数很适合Node.js事件驱动,异步编程。
  • javascript在动态语言中性能很好

参考文献http://www.infoq.com/cn/articles/what-is-nodejs

时间: 2024-10-29 04:22:18

什么是Node.js的相关文章

node.js的安装及配置

一.安装 直接在浏览器搜索node.js,在官网上下载(一般旧版的更加稳定,比如下载4.4.7版本) 点击DOWNLOADS 往下翻,点击Previous Release Windows下载msi(64位/32位) 根据提示一步步安装,安装之后的文件夹如下: 在cmd命令行下输入node -v,如果出现如下,说明安装成功: 二.关于配置 在安装路径下新建两个文件夹: 创建完两个空文件夹之后,打开cmd命令窗口,输入 npm config set prefix "D:\Program Files

Node.js: Extend and Maintain Applications + large scale

https://blog.risingstack.com/node-js-mysql-example-handling-hundred-gigabytes-of-data/ My secondary goal with this article is to help you decide if Node.js + MySQL is a good fit for your needs, and to provide help with implementing such a solution. h

1.node.js windows环境搭建

作为服务端运行javascript的平台的NodeJs,把前台javascript移到了服务器端,Google V8引擎使其运行效率非常高,它可以异步,无任何阻塞运行程序.nodejs包含http服务器,可以为我们实现 web系统设计,客户端javascript编译器,等一系列的功能. 工具/原料 windows系统电脑 ,电脑可以上网 方法/步骤 下载windows平台nodejs环境安装包,百度一下nodejs官网,找到DOWNLOADS点击,找到Windows Installer 如果为6

在Node.js中使用RabbitMQ系列二 任务队列

在上一篇文章在Node.js中使用RabbitMQ系列一 Hello world我有使用一个任务队列,不过当时的场景是将消息发送给一个消费者,本篇文章我将讨论有多个消费者的场景. 其实,任务队列最核心解决的问题是避免立即处理那些耗时的任务,也就是避免请求-响应的这种同步模式.取而代之的是我们通过调度算法,让这些耗时的任务之后再执行,也就是采用异步的模式.我们需要将一条消息封装成一个任务,并且将它添加到任务队列里面.后台会运行多个工作进程(worker process),通过调度算法,将队列里的任

node.js搭建代理服务器请求数据

1.引入node.js中的模块 1 var http = require("http"); 2 var url = require("url"); 3 var qs = require("querystring"); 2.创建服务器 //用node中的http创建服务器 并传入两个形参 http.createServer(function(req , res) { //设置请求头 允许所有域名访问 解决跨域 res.setHeader("

Node.JS 文件读写,把Sheet图集转换为龙骨动画图集

Node.JS 文件读写,把Sheet图集数据转换为龙骨动画图集数据 var fs = require("fs") var readline = require("readline"); var rl = readline.createInterface({ input:process.stdin, output:process.stdout }); var path = undefined; var dbName = undefined; rl.question(

10个常见的Node.js面试题

如果你希望找一份有关Node.js的工作,但又不知道从哪里入手评测自己对Node.js的掌握程度. 本文就为你罗列了10个常见的Node.js面试题,分别考察了Node.js编程相关的几个主要方面. 在进入正文之前,需要提前声明两点: 这些问题只是Node.js知识体系的一个局部,并不能完全考察被面试者的实际开发能力. 对现实世界开发中遇到的问题,需要的是随机应变与团队合作,所以你可以尝试结对编程. Node.js面试题列表 什么是错误优先的回调函数? 如何避免回调地狱? 如何用Node来监听8

CentOS6.5 安装Node.js

Node.js的安装通常有两种方式:自己编译源代码和使用编译好的文件,我这里使用编译好的文件目前我的home目录下有刚下载来的node-v4.2.3-linux-x641.首先解压缩 tar xvf node-v4.2.3-linux-x64 2.设置链接 ln -s /home/node-v4.2.3-linux-x64/bin/node /usr/local/bin/node ln -s /home/node-v4.2.3-linux-x64/bin/npm /usr/local/bin/n

使用NPM安装Node.js模块以及调试

npm npm 作为Node.js的包管理器,是经常用到的工具. 注意:全局安装一个框架,需要加参数-g npm install -g express 安装后 在项目中只需要导入包即可 var http = require('http'); 调试 调试Node的最简单的方式就是console.log(),但是有时候也需要单步调试 在需要调试的地方写入debugger node debug *.js node中的测试命令: next,n:单步执行 cont,c:继续执行,直到遇到下一个断点 ste

用Node.js开发Windows 10物联网应用

(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 未来10年内,物联网将会如移动互联网这样深入到我们生活的各方各面.所以微软现在对物联网进行了大量的投资,比如Windows 10就有一个单独的IoT版本.而今天推荐的文章是告诉大家如何把Node.js开发带到Windows 10 IoT中. 在月初Build大会上,微软发布了Windows 10 IoT Core Insider Preview,这个版本可以安装到树莓派2(Raspberry Pi