第一章:node.js简述

什么是nodejs

nodejs从性能上来说是编写高性能网络服务器的JavaScript工具包。(翻译过来就是:用js开发服务端程序)

1、单线程、异步、事件驱动、

2、特点是:快。耗内存多。

3、异步消除内存测试:

网上一百万级并发测试,未优化的情况下消耗了16G内存。

如何理解nodejs执行速度快,但耗内存多的特点

PHP的知识点

PHP本身是不支持多线程的,是因为PHP的服务器Apache本身支持多线程。当Apache启动的时候,它先提供150个线程给PHP,假设在并发的条件下,打比方也就是同一时间突然有1万多个用户打开了浏览器访问这个网页的话,那么最多150用户先从线程池中取得这150个线程,这150个线程中有上传的线程,有下载的线程,在线程执行完任务后,将结果返回给客户时,才能放回线程池中,然后被其他用户使用。

这个过程是PHP的运行过程。

nodejs是单线程,那么它是如何运行的呢,它如果采用像以上PHP一样的单线程操作,操作起来会特点的慢,所以nodejs在这里采用了异步操作,大大的提供了工作的效率。那么nodejs是如何操作的呢。

首先nodejs中只有一个线程,假设有1万个用户并发访问,nodejs会采用异库操作,在第一个用户访问的时候,这个线程会为该用户访问在内存中开辟出一块小的内存让他进行上传下载。在第二个用户到来的时候,这个线程又会给他开辟一块小的内存,以此类推来完成用户同一时间的大批量并发访问。

举一个恰当的例子,这就相当于病人去医院看病,一个护士只负责给病人挂号,让病人去各个科室看医生。护士扮演了单线程的角色,而各个科室扮演了被开辟出的内存的角色。

nodejs这种访问的特点是:

速度快,(我不管你干什么,你到对应的内存中去就可以了)

耗内存多。(多个用户并发访问就需要开辟多个内存)

PHP在完成任务后才能去运行其他的任务。

补充:

在面试PHP时可能会碰到以下面试问题:

高并发,大数据量的情况下如何去更快的完成?

去优化这种情况,而优化的核心内容都这围绕着一个线程更快的去结束来提高这个PHP的性能。

nodejs对比PHP

有人说 nodejs和JavaScript是竞争关系,实际上可以说这两者是互补关系,而nodejs和PHP的竞争才是最大的,有国外的人曾在技术论坛上从这两者的性能上提出了如下对比:

nodejs的优点:

性能高,(机制问题)

开发效率高,(省不了优化的事)

应用范围广(可以开发桌面系统,electrom框架)

nodejs的缺点:

新,人少

中间件少

IDE不完善。

nodejs的劣势和解决方案

?默认不支持多核,但用cluster可以解决

?默认不支持服务器集群,node-http-proxy可以解决

?使用nginx做负载均衡,静态的有nginx处理,动态的由nodejs处理

?forever或node-cluster实现灾难恢复

我们学习框架选择

?比较热门的包括:express、koa、Hapi

?以及express基础之上的sails

?express:完善、稳定、文档全、社区大

?koa:超前,正在完善中,用ex6开发的。

?Hapi:(不适合初学者)复杂(一个简单的hello,world都要做出很多堆砌),适合做复杂的大型项目。

本教程学习路径

node.js基础(让你跟深入了解他的底层原理)

Express框架

sail框架

项目(微信开发):

sails+vue.js

sails+react

代码拷贝方式教学:http://www.yuankuwang.com

编辑器(IDE):

?记事本(Editplus)

?webstorm

?Atom或sublime

学习方法:

?多看文档

?摸索测试

时间: 2024-10-10 10:02:10

第一章:node.js简述的相关文章

NodeJS 第一章 Node的安装与配置

1. Mac OS X安装Node.js node.js官方专门提供了Mac OS X的安装包,你可以在http://nodejs.org找到Download链接, 然后选择Macintosh Installer,下载安装包.下载完成后运行安装包, 据提示完成安装.Node.js和npm会被安装到/usr/local/bin目录下, 安装过程中需要系统管理员. 2. 可以打开终端, 输入 node -v 查看 node 版本, npm -v 查看npm版本了, npm是Node包管理器, 我们可

JavaScript 高级程序设计(第3版)第一章 (js简介)

1.我比js早一年 2.web浏览器是ECMAScript实现的宿主环境之一. 其它实现ECMAScript的宿主环境包括Node和Adobe Flash 3.ECMAScript主要规定js的组成部分:语法,关键字和保留字: 变量,数据类型:操作符,语句:类型,对象: 4.dom 把整个页面映射成一个多节点结构.dom独立于平台

【读书笔记】《深入浅出nodejs》第一章 Node简介

1. Node的官方网站: http://nodejs.org 2. Node的缘起: Ryan Dahl 打算设计一个高性能的Web服务器. Ryan Dahl 认为设计高性能Web服务器的要点在于: (1)事件驱动 (2)非阻塞I/O (what? && why?) Ryan Dahl 选择使用JavaScript作为该服务器的实现语言,起名为Node. *为什么是JavaScript? (1)高性能 (2)符合事件驱动 (3)没有历史包袱 3. Node的特点 (1)保留前端浏览器J

Angular JS开发指南 第一章 Angular JS概述

什么是Angular? AngularJS是一个开发动态Web应用的框架.它让你可以使用HTML作为模板语言并且可以通过扩展的HTML语法来使应用组件更加清晰和简洁.它的创新之处在于,通过数据绑定和依赖注入减少了大量代码,而这些都在浏览器端通过JavaScript实现,能够和任何服务器端技术完美结合. Angular是为了扩展HTML在构建应用时本应具备的能力而设计的.对于静态文档,HTML是一门很好的声明式的语言,但对于构建动态WEB应用,它无能为力.所以,构建动态WEB应用往往需要一些技巧才

Node.js权威指南笔记

第一章 Node.js介绍 1.Node.js中的模块 每个模块一个js文件,每个模块定义的全局变量或函数的作用范围也被限定在这个模块之内,只有使用exports对象才能将其传递到外部 2.简单实例: var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/html'}); res.write('<head><meta cha

《Node.js入门经典》

第一章  Node.js介绍 一.什么是Node.js google的工程师创建了V8引擎,这是给Chrom浏览器编写javascript引擎, V8为引擎来创建服务器环境,的理由: 1.速度快 2.处理超文本协议,域名系统,和传输控制协议(TCP) 第二章  npm(node包管理器) 一.npm是什么 它允许开发人员在node.js中创建.共享和重用模块 二.安装npm 安装模块命令:npm install 1.本地安装和全局安装 本地安装:就是将项目安装在本地的一个[ node_modul

node.js中的交互式运行环境-REPL

<Node.js权威指南>第2章Node.js中的交互式运行环境--REPL 开发者可以在该环境中很方便地输入各种JavaScript表达式并观察表达式的运行结果. 在学习Node.js框架的过程中,通过该运行环境的使用,我们可以很方便地了解Node.js中定义的各种对象所拥有的各种属性及方法.本节为大家介绍在REPL运行环境中操作变量 2.2 在REPL运行环境中操作变量 在REPL运行环境中,可以使用var关键字来定义一个变量并为其赋值,但是在输入了对其赋值进行的表达式后,该表达式的执行结

Node.js【4】简介、安装和配置、快速入门

笔记来自<Node.js开发指南>BYVoid编著 第1章 Node.js简介 Node.js是一个让JavaScript运行在服务端的开发平台,它让JavaScript成为脚本语言世界的一等公民,在服务端堪与PHP.Python.Perl.Ruby平起平坐. Node.js可以作为服务器向用户提供服务,与PHP.Python.RubyonRails相比,它跳过了Apache.Nginx等HTTP服务器,直接面向前端开发. Node.js还可以调用C/C++的代码,这样可以充分利用已有的诸多函

Node.js【5】核心模块

笔记来自<Node.js开发指南>BYVoid编著 第4章 Node.js核心模块 4.1.全局对象 Node.js中的全局对象是global,所有全局变量(除了global本身以外)都是global对象的属性.我们在Node.js中能够直接访问到对象通常都是global的属性,如console.process等. 永远使用var定义变量以避免引入全局变量,因为全局变量会污染命名空间,提高代码的耦合风险. process用于描述当前Node.js进程状态的对象,提供了一个与操作系统的简单接口.