Node.js的概念及安装使用

什么是Node.js?

  1. Node.js是一门后端语言

  2. 基于Chrome v8引擎的js运行环境;
    除此之外:还有其他的引擎: 单片机、actionscript

  3. Node.js有两大特征

    1. 事件驱动
      1. 事件的定义(发布)
      2. 事件的触发(订阅)
    2. 非阻塞式 I/O 模型
      1. 非阻塞 : 执行一个任务时,不需要等待这个任务执行完成,就可以去执行其他任务
      2. I/O: 磁盘文件操作 / 数据库数据操作
  4. 总结:

    1. 问题: 非阻塞,但是js是单线程,要想实现非阻塞,必须将任务放到任务队列,任务队列如何放?
    2. 解决: js中异步操作
    3. js中如何实现异步操作
      1. 回调函数
      2. Promise
      3. gengator函数
      4. async函数
      5. Node.js自带的 nextTick setImmediate
      6. 别人封装的 async.js 库

Node.js的包管理器

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

  2. cnpm 淘宝镜像( 国内的 )

  3. yarn 流行

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

Node.js的版本问题

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

Node.js 安装

安装方式有两种:

  1. 官网下载镜像直接安装 ( 只能使用一个版本 )

  2. 使用 nvm 来安装 ( nvm可以管理多个Node.js版本 )

    1. nvm有坑: nvm安装有难度
    2. nvm安装: https://github.com/coreybutler/nvm-windows/releases (下载第三个 nvm-setup.zip)
    3. nvm安装前先卸载本地的Node.js
    4. 问题: 如果报错 nvm命令没找到, 就是你的系统环境变量没有自动生成, 所以你要手动配置
    5. https://blog.youkuaiyun.com/qq_27626333/article/details/77857223
  3. 注意: Node.js安装的最低版本至少要8.9以上

Node.js使用

1. 命令终端

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

2. 文件型使用

  1. 命令行键盘 tab 键 自动补全文件名称

  2. 执行文件/运行文件:
    $ node 文件名称.js

  3. 自动监听node.js文件/ 自动刷新工具

    1. nodemon
    2. supervisor
  4. 自动监听工具的安装

    1. npm:
      $ npm install nodemon -g
      $ npm install supervisor -g
    2. cnpm:
      $ cnpm install nodemon -g
      $ cnpm install supervisor -g
    3. yarn:
      $ yarn add nodemon global
      $ yarn add supervisor global

Node.js服务器

Node.js服务器有两种

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

Node.js web服务器

 C:\Ruby23-x64\bin;
 %SystemRoot%\system32;
 %SystemRoot%;
 %SystemRoot%\System32\Wbem;
 %SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;
 C:\Program Files\Git\cmd;
 %NVM_HOME%;
 %NVM_SYMLINK%;


 C:\Ruby23-x64\bin;%SystemRoot%\system32;
 %SystemRoot%;%SystemRoot%\System32\Wbem;
 %SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;
 C:\Program Files\Git\cmd;

用Node.js创建一个静态服务器,然后将项目部署在这个服务器中

源代码:

var http = require( 'http' );
var port = 8080 ;
var hostname = '127.0.0.1'
var path = require( 'path' )  // 磁盘路径处理的模块
var fs = require( 'fs' ) // 操作文件、目录的模块
var url = require( 'url' ) // 处理url

var server = http.createServer( function ( request, response ) {
  var staticPath = path.join( __dirname,'static'  )
  var urlObj = url.parse( request.url )
  /*   Url {
    protocol: null,
    slashes: null,
    auth: null,
    host: null,
    port: null,
    hostname: null,
    hash: null,
    search: null,
    query: null,
    pathname: '/static/css/index.css',
    path: '/static/css/index.css',
    href: '/static/css/index.css' */

  if( urlObj.pathname === '/'){
  urlObj.pathname += 'index.html'
  }
  console.log( urlObj.pathname )
  
  // fs.readFile(路径,字符编码,错误优先的回调函数)
  var filePath = path.join( staticPath, urlObj.pathname )
  fs.readFile( filePath,'binary',function( error,filecontent ) {
    if ( error ){
      throw error 
    }else {
      response.write( filecontent, 'binary' )
      response.end()
    }
  })
})

server.listen( port , hostname , function () {
  console.log( `The server is runing: http://${ hostname }:${ port }` )
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值