Node.js学习第一天笔记

文章目录

    • 什么是Node.js?
    • Node.js的包管理器
    • Node.js的版本问题
    • Node.js 安装
    • Node.js使用
      • 1. 命令终端
      • 2. 文件型使用
    • Node.js服务器
      • Node.js web服务器

什么是Node.js?

  1. Node.js是一门后端语言
  2. 基于Chrome v8引擎的js运行环境
    除此之外:还有其他的引擎: 单片机、actionscript
  3. Node.js有两大特征
    1. 事件驱动
      1. 事件的定义(发布)
      2. 事件的触发(订阅)
    2. 非阻塞式 I/O 模型
      1. 非阻塞 : 执行一个任务时,不需要等待这个任务执行完成,就可以去执行其他任务
      2. I/O: 磁盘文件操作 / 数据库数据操作

总结:
问题: 非阻塞,但是js是单线程,要想实现非阻塞,必须将任务放到任务队列,任务队列如何放?
解决: js中异步操作

  问题: js中如何实现异步操作

  解决: 
     1. 回调函数     √
     2. Promise
     3. gengator函数
     4. async函数
     5. Node.js自带的 nextTick   setImmediate
     6. 别人封装的 async.js  库

Node.js的包管理器

NPM: 全球最大的开源生态系统( 国外的 )

cnpm 淘宝镜像( 国内的 )

yarn 流行

npm && yarn 全部要配置国内镜像 ( 百度关键字: yarn国内镜像 )

Node.js的版本问题

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

Node.js 安装

安装方式有两种:

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

nvm有坑: nvm安装有难度

  • nvm安装: https://github.com/coreybutler/nvm-windows/releases (下载第三个 nvm-setup.zip)
  • nvm安装前先卸载本地的Node.js
  • 问题: 如果报错 nvm命令没找到, 就是你的系统环境变量没有自动生成, 所以你要手动配置
  • https://blog.csdn.net/qq_27626333/article/details/77857223
  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
  • 自动监听工具的安装

    • npmnode
      $ 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服务器

var http = require('http')

var port = 8000;
var hostname = 'localhost'


// 2. 创建web服务器

// http.createServer( callback )
http.createServer(function(request, response) {

    // 3. 发送数据给前台

    // response.writeHead( 状态码,头部配置)

    response.writeHead(200, {
        'content-type': 'text/html;charset=utf8'
    })
//这里用utf8进行编码,并且html格式用于识别标签,这里是单个标签发送
    response.write('

hello Node.js~~~

') response.end() //告诉前台我数据发送完成了 // 4. 监听服务器 listen( port , hostname , callback) }).listen(port, hostname, function() { console.log(`The server is running in: http://${hostname}:${port}`) })

你可能感兴趣的:(Node.js学习第一天笔记)