初识Node.js

158 阅读2分钟

什么是Node.js?

  1. Node.js是一个基于Chrome V8 引擎的 JavaScript的运行环境;
  2. Node.js使用了一个事件驱动.非阻塞式I/O的模型,使其轻重又高效。
  • Node.js功能:
    1. 事件驱动
    1. 非阻塞I/O模型[异步的输入输出,比如:文件操作.数据库操作。

Node.js文件的运行?

  1. 使用Node.js编译器;
  2. 使用命令运用.
  3. 导入模块--require;
  4. 导出模块--module.exports

Node.js文件的实时监听改动

  1. nodemon;

Node.js版本

  1. Current[最新版]--小白鼠;
  2. LTS[长期稳定版].

Node.js的模块化问题?

  1. Node.js采用了Common.js模块化;
  2. 模块化解决的事什么问题?
  • js中可以引用其他类型的问题;
  1. 应用:
  • 内置模块 ->可以直接使用;
    • http 处理与服务器相关的一些功能;
    • url 解析处理 url 地址;
    • querystring
        1. 使用场景:
      • 用于处理 url 上的查找字符串-- ?之后的
        • querystring.parse : string->object
        • querystring.stringify: object->string
        • querystring.escape : 中文转码
        • querystring.unescape : 中文解码
        • 例:querystring.parse(url.parse(url).query,'&','=');
    • fs 操作文件;
      • 例:const fs=require('fs')--Common.js 模块引入方式
      • fs 是一个对象
      • 定义的fs 其实拿的是一个地址,地址一般都不希望变的,所以const
        • fs.readFileSync--同步读;
        • fs.readFile--异步读
    • path
      1. 使用场景:
      • 用于处理绝对路径/磁盘路径
      1. 问题:浏览器的全局变量是?Node.js全局变量?
      • 浏览器中全局变量:window;
      • Nodw.js中全局变量:global;
  • 第三方模块 ->Node.js没有的 类似于插件;
    • 前端第三方插件全部都在一个网站中:www.npmjs.com
    • 使用
        1. 安装npm/cnpm/yarn
        1. cnpm i requset -S/-D
      • -S 生产环境
      • -D 开发环境
    • 问题:这里存不存在跨域?
      • 不存在 , Node.js是运行在服务端的,不是在浏览器端的,没有同源策略
    • 总结: -要是不会用第三模块化怎么办?
        1. npm.js 查阅文档
        1. 先写单案例测试
        1. 记录使用文档,记录下来,方便以后查阅
  • 自定义模块--自己创建模块,自己使用;
    • 类型
        1. 函数
        1. 对象
        1. 字符串
  1. 自定义模块上传实现步骤
    1. 创建文件夹,注意命名不能冲突;
    1. 创建packgae.json文件
      • npm init/npm init-y
    1. 创建index.js 里面任意封装一个功能
    1. 创建一个npm.js 账号
    1. 保证当前源是 npm 源
      • $ nrm ls
    1. 登录账号
      • $ npm adduser
    1. 上传
      • $npm publish

JSON.stringify/JSON.parse

    1. 字符串.对象相互转换
    1. 深拷贝--JSON序列化实现
    • JSON.parse(JSON.stringify( 内容 ))--先转字符串再转对象