zoukankan      html  css  js  c++  java
  • Node.js 学习笔记(一)

     什么是Node.js

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

                                                                                             

                                                                                       

    图1-1:node.js主页http://nodejs.org/ 

    下面我们解释下什么叫阻塞

    1      //根据ID,在数据库中Persons表中查出Name 
    3      var name = db.query("select name from persons where id=1"); 
    5      //进程等待数据查询完毕,然后使用查询结果. 
    7      output("name")

        上面的这段代码查询过程中进程往往是在等待查询的结束,然后将结果返回。这就造成了阻塞,这对于高迸发高密集的网络。一方面进程很长时间处于等待,一方面为了应付新的请求不断的增加新的进程,严重了服务器的性能也容易被慢链攻击(服务端故意不接收数据加长进程等待时间)

     

    怎么解决阻塞

        建立一种事件机制,当发送查询后将进程交出,当数据返回后触发事件后立即执行output;

     

    为什么js适合解决阻塞

        1.Js是函数式编程函数可以当参数直接调用,js还支持匿名函数。

    1  db.query("select name from persons where id=1",function(name){  
    2     output(name);  
    3  });  

        2. js独特的生命周期  闭包

    1   //异步写法:  
    2    function main(){  
    3     var id = "1";  
    4     db.query("select name from persons where id=" + id,function(name){  
    5         output("person id:" + id + ", name:" + name);//n秒后数据返回后执行回调  
    6      });  
    7     }  
    8     main();  

     安装node.js

     搭建第一个web
        新建个hello的js

    1  var http = require('http');
    2  http.createServer(function (req, res) {
    3    res.writeHead(200, {'Content-Type': 'text/plain'});
    4    res.end('Hello World\n');
    5  }).listen(1337, '127.0.0.1');
    6  console.log('Server running at http://127.0.0.1:1337/');

    在命令中输入

                                           

    然后我们访问http://127.0.0.1:1337/

    第一个web就搭建好了:)

  • 相关阅读:
    celery 大量消息的分布式系统 定时任务
    小程序开发-生活娱乐两不误
    linux安装selenium+chrome+phantomjs
    CENTOS 7 安装 TINYPROXY 代理服务器
    JVM(三) 垃圾回收时间点和垃圾收集器
    JDK12 concurrenthashmap源码阅读
    JVM(二) 对象存活判断和垃圾回收算法
    java 线程池(2)
    JVM(一)
    java 线程池(1)
  • 原文地址:https://www.cnblogs.com/fishlynn/p/2615424.html
Copyright © 2011-2022 走看看