• node.js基础


    什么是Node.js?

    1. Node.js是一门后端语言
    2. 基于Chrome v8引擎的js运行环境
      除此之外:还有其他的引擎: 单片机、actionscript
    3. Node.js有两大特征
    4. 事件驱动
    5. 事件的定义(发布)
    6. 事件的触发(订阅)
    7. 非阻塞式 I/O 模型
    8. 非阻塞 : 执行一个任务时,不需要等待这个任务执行完成,就可以去执行其他任务
    9. I/O: 磁盘文件操作 / 数据库数据操作
      总结:
      问题: 非阻塞,但是js是单线程,要想实现非阻塞,必须将任务放到任务队列,任务队列如何放?
      解决: js中异步操作
      问题: js中如何实现异步操作
      解决:
    10. 回调函数 √
    11. Promise
    12. gengator函数
    13. async函数
    14. Node.js自带的 nextTick setImmediate
    15. 别人封装的 async.js 库

    总结
    优点 :1. 高并发(最重要的优点)
       2. 适合I/O密集型应用
    缺点:

    1. 不适合CPU密集型应用;CPU密集型应用给Node带来的挑战主要是:由于JavaScript单线程的原因,如果有长时间运行的计算(比如大循环),将会导致CPU时间片不能释放,使得后续I/O无法发起;

        解决方案:分解大型运算任务为多个小任务,使得运算能够适时释放,不阻塞I/O调用的发起;

      2. 只支持单核CPU,不能充分利用CPU

      3. 可靠性低,一旦代码某个环节崩溃,整个系统都崩溃

        原因:单进程,单线程

        解决方案:(1)Nnigx反向代理,负载均衡,开多个进程,绑定多个端口;

             (2)开多个进程监听同一个端口,使用cluster模块;

      4. 开源组件库质量参差不齐,更新快,向下不兼容

      5. Debug不方便,错误没有stack trace

    Node.js的包管理器

    NPM: 全球最大的开源生态系统( 国外的 )
    cnpm 淘宝镜像( 国内的 )
    yarn 流行
    npm && yarn 全部要配置国内镜像 ( 百度关键字: yarn国内镜像 )

    Node.js的版本问题

    1. Node.js有两个版本, 一个是测试版, 一个是稳定版,造成;两个版本的原因是: 有两个团队
    2. 业内规定:
    3. 版本的单数是: 测试版 bate版本
    4. 版本的偶数是: 稳定版

    Node.js 安装

    安装方式有两种:

    1. 官网下载镜像直接安装 ( 只能使用一个版本 )
    2. 使用 nvm 来安装 ( nvm可以管理多个Node.js版本 )

    nvm有坑: nvm安装有难度

    1. 要求: Node.js安装最低版本也要8.9以上

    Node.js使用

    1. 命令终端使用
    2. 文件使用

    1. 命令终端

    • Node.js的全局对象是 global ; javascript的全局对象是 window
    • 直接在命令终端中输入node,然后回车,就会出现 '>' 标识,然后就可以写js语法了
    • 命令终端退出: Ctrl + c 两次

    2. 文件型使用

    • 命令行键盘 tab 键 自动补全文件名称
    • 执行文件/运行文件:
      $ node 文件名称.js
    • 自动监听node.js文件/ 自动刷新工具
    • nodemon √
    • supervisor
    • 自动监听工具的安装
    • npm
      $ npm install nodemon -g
      $ npm install supervisor -g
    • cnpm
      $ cnpm install nodemon -g
      $ cnpm install supervisor -g
    • yarn
      $ yarn add nodemon global
      $ yarn add supervisor global

    Node.js服务器

    Node.js服务器有两种

    1. web服务器( 静态服务器 )
    2. api服务器( 动态服务器 ) 数据接口

    Node.js web服务器

    1.引入模块
    var http = require('http');
    var hostName = localhost;
    var port = 8000;
    2.创建http请求
    http.createServer((req,res)=>{
    3.想后台发送数据
    
          /*设置头部*/
         res.writeHead(200,{
             'content-type':'text/html;charset=utf8'
         })
         
         res.write('<h1> hello Node.js </h1>');
         res.end();
     4.监听数据
    }).listen(port,hostName,()=>{
         console.log(`
             this server is ruining in: http://${hostName}:${port}
         `)
    })
    
  • 相关阅读:
    某个账号微信的微信朋友圈内容抓取 部分好友内容抓取
    密钥登录
    CPU处理器架构和工作原理浅析
    perl 安装Net::ZooKeeper
    perl 安装Net::ZooKeeper
    thinkphp 常用的查询
    thinkphp 常用的查询
    ThinkPHP 3.1.2 模板中的基本语法<2>
    ThinkPHP 3.1.2 模板中的基本语法<2>
    perl post 带上请求头
  • 原文地址:https://www.cnblogs.com/ruange/p/10908252.html
Copyright © 2020-2023  润新知