Node.js简介以及安装

一、node.js定义

编写高性能网络服务器的JavaScript工具包(用js开发服务器端程序)

单线程、异步、事件驱动

特点:快、耗内存多

异步消耗内存测试:

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

1、对比PHP的运行机制

PHP本身不支持多线程,但是它本身的服务器,例如Apache ,它是支持多线程的。那么当Apache初始化的时候,他会启动150个线程提供给PHP,那么如果在一定时间的内,有大量的并发(瞬间会有大批的访问者去访问这个服务器)产生的时候。假设访问者有1万人,它会到线程池里取线程,总共有150个线程,就分配给150个人。线程的操作等线程完毕返回给客户结果后,线程会放回到线程池。当放回线程池以后,这个线程又会被提供给其他人用。这个就是PHP的运行方式。

2、node.js的运行机制

        它只有一个单线程,那么1万个人访问的话,拿一排号1,2,3,4,5·····10000,如果一个个访问,它的效率会很低,那么这个时候怎么办呢?

        它会采用一个异步,也就是当我访问第一个,他会另开一个空间,对库操作;第二个线程例如读取操作的时候,,它是会另开一个空间,以此类推。就像是在医院的分诊台一样,护士不负责给你看病,只负责给你分配到那个科室看病。

        这种操作它的特点:快,例如百万级的并发量的时候可以瞬间的过去了

                                      占内存大,分配到别的内存里取运行。

幸好:内存是可以不断添加的,而且费用降低了,这种方式用的比较多。因为用钱来解决的问题都不是问题!!

3、node.js VS PHP

优点:     

    性能高(机制问题)

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

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

缺点:

    新、人少

    中间件少

    IDE不完善

4、node.js的劣势和解决方案

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

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

③、使用NGINX 做负载均衡,静态的有NGINX处理,动态的有node.js处理

④、forever或node-cluster 实现灾难恢复

5、框架的选择

比较热门的:express 、koa、 hapi 以及express基础之上的sails

express:完善、稳定、文档全、社区大 (用的人比较多)

koa:超前、正在完善中

Hapi: 复杂,适合复杂的大型项目

二、安装

官网下载安装包: http://nodejs.cn/   这个是中文网,里面还有中文文档供大家参考!

本人的安装环境:jdk1.7  + Windows 7  + node-v10.3.1-x64









自动配置了环境变量


测试安装的是否成功!!


cmd里面进行测试:

指令:npm

查看npm版本:npm -v

查看node.js 版本:node -v


node.js安装完成了!!

三、第一个简单的hello world

F:\node.js\study   这个是我创建的文件夹,大家可以随意创建,并且创建文本文档


右键Edit打开


另存为 n1_hello



输入 console.log("hello world"); 



在http上运行:
var  http  =  require('http');  
http.createServer(function  (request,  response)  {  
    response.writeHead(200,  {'Content-Type':  'text/html;  charset=utf-8'});  
    if(request.url!=="/favicon.ico"){  //清除第2此访问  
        console.log('访问');  
        response.write('hello,world');  //输出,但是没有执行完毕
        response.end('hell,世界');//不写则没有http协议尾,但写了会产生两次访问  (输出,执行完毕了) 
    }  
}).listen(8000);  
console.log('Server  running  at  http://127.0.0.1:8000/'); 

在http://localhost:8000/ 打开


成功!!!

Ctrl C 结束


猜你喜欢

转载自blog.csdn.net/qq_28289405/article/details/80595755