zoukankan      html  css  js  c++  java
  • 《node.js实战》第一章读后感

    第一章:欢迎进入node.js世界

    开始简单介绍了nodejs和前端的js一样,都使用了事件触发来完成异步请求的。

    然后又简单介绍了nodejs的事件轮询机制

    然后用NGINX和Apache的对比来说明异步I/O的事件轮询比有阻塞的多线程的处理能力要强

    最后使用node的http模块来搭起了一个简单的服务器和一个流数据的服务器

    Got It

    1.node是异步单线程非阻塞I/O的JavaScript服务器开发平台。

    异步:就像前端ajax一样,等触发了onreadystatechange事件再对数据进行处理,只不过nodejs有很多类似的方法

    非阻塞I/O:指的是在接收到请求时不用等请求完成在执行,而是去接收其它请求,异步只是实现非阻塞的一种方式(I/O指的是输入输出的意思)

    2.nodejs的优点

    (1)开发人员用一种JavaScript语言就能开发整个网站(全栈工程师)

    (2)JSON是非常流行的数据交换格式,它还是JavaScript原生的

    (3)NoSQL数据库中用的就是JavaScript

    (4)JavaScript是编译目标语言,很多可以编译成JavaScript

    (5)node用的是虚拟机(V8)会跟着ECMAScript标准,所以什么es6,es7,es8....,nodejs直接就可以使用

    (6)专为数据密集型实时程序设计

    3.使用http模块搭起简单的http服务器

    var http = require('http');

    1.第一种

    http.createServer((req, res) => {

      res.writeHead(200, {'Content-Type': 'text/plain'});

      res.end('我是个简单的服务器!');

    }).listen(8080);

    2.第二种

    var server = http.createServer();

    server.on('request', (req, res) => {

      res.writeHead(200, {'Content-Type': 'text/plain'});

      res.end('我是个简单的服务器!');

    });

    server.listen(8080);

    这和第一种没什么区别,因为:http.createServer()的参数会自动添加到request事件中

    3.第三种(流数据)

    var fs = require('fs');

    http.createServer((req, res) => {

      res.writeHead(200, {'Content-Type': 'image/png'});

      fs.createReadStream('x.png').pipe(res);

    }).listen(8080);

    这种方法更高效

  • 相关阅读:
    JMeter接口测试系列:Jmeter+jenkins+ant 的自动化构建
    BZOJ1434:[ZJOI2009]染色游戏(博弈论)
    BZOJ4241:历史研究(回滚莫队)
    BZOJ2281:[SDOI2011]黑白棋(博弈论,组合数学,DP)
    BZOJ1188:[HNOI2007]分裂游戏(博弈论)
    BZOJ1022:[SHOI2008]小约翰的游戏John(博弈论)
    BZOJ1406:[AHOI2007]密码箱(数论)
    BZOJ3270:博物馆(高斯消元)
    CF993E:Nikita and Order Statistics(FFT)
    HDU4609:3-idiots(FFT)
  • 原文地址:https://www.cnblogs.com/sungg/p/6726970.html
Copyright © 2011-2022 走看看