美文网首页让前端飞Web前端之路
Node学习day01——认识node和简单读写文件

Node学习day01——认识node和简单读写文件

作者: 顽皮的雪狐七七 | 来源:发表于2019-07-13 19:01 被阅读1次

    目录

    • 认识node
      • node是什么
      • 应用场景
      • node语法使用
        • ES5、ES6
        • node核心模块
        • 引入第三方模块
        • 用户自定义模块
      • 环境安装
      • 使用node执行的第一个脚本
      • 使用node读写文件
        • 使用node写入文件
        • 使用node读取文件

    认识node

    Node 是一个针对网络应用开发的平台,是利用 Google 的 JavaScript 运行时引擎 V8(可以解析和执行 JavaScript)打造的一个 JavaScript 在服务端的运行环境。

    node是什么

    • Node 不是一门语言。Node 是一个构建于 Chrome JavaScript V8 解析引擎之上的一个 JavaScript 运行时(环境)。
    • Node 可以解析和执行 JavaScript 代码
      • Ecmascript,基本的 JavaScript 语法及 API
      • 没有 window、document 之类的DOM、BOM元素
      • Node 类似于浏览器,是一个解析执行 js 环境,虽然不处理 UI,但是在该平台中为 js 提供了一系列的编程接口
    • Node 使用事件驱动和非阻塞IO模型使得它非常的轻量和高效
    • npm 不仅仅可以用来下载 node,还可以用来方便管理和维护第三方包的相关的一些资源包,也可以用来下载浏览器环境相关的一些资源包(Ployfill,Hack)

    应用场景

    • 网站服务器
    • 网络爬虫
    • JSON API
    • 网络游戏服务器
    • 命令行工具

    node语法使用

    ES5、ES6

    node核心模块

    Node 把绝大多数的 API 都封装到了一个具名的核心模块中,每一个模块就是处理一系列功能的API集合,每个模块都有一个唯一表示名称进行暴露,我们使用的时候需要进行单独的加载。

    例如文件操作的:fs,网络操作的 http 等,如果要使用,需要先加载模块。

    //用户自定义变量名  = require('唯一的核心模块标识名称')
    var fs = require("fs")
    

    引入第三方模块

    第三方模块由npm社区提供,我们在使用的时候:

    1、使用npm下载指定的模块

    npm install moment
    

    2、通过require进行引用

    var moment = require("moment")
    

    3、查看第三方的API进行使用。

    momentjs的官方文档

    console.log(moment().format())
    console.log(moment().format("YYYY-MM-DD HH:mm:ss"))
    
    momentjs.png

    用户自定义模块

    Node 基于 CommonJS 模块规范实现了自己的一套 JavaScript 模块解决方案,其核心 API 为下面三个

    • require
    • module
    • exports

    环境安装

    Node官网下载

    下载 --> 下一步安装 --> 完成

    验证

    node -v
    node --version
    npm -v
    npm --version
    
    node-version.png

    使用node执行的第一个脚本

    1、创建一个helloworld的js文件

    2、在js里面写一行代码

    console.log("hello nodejs");
    

    3、在本文件目录下执行

    node helloworld.js
    
    hellonodejs.png

    使用node读写文件

    使用node写入文件

    //引入node的文件操作fs核心模块
    var fs = require("fs")
    //定义需要写入的字符串
    var data = "hello nodejs"
    //使用writeFile API,传入写入路径,需要写入的内容,接收回调返回错误信息
    fs.writeFile("./data/hello.txt",data,function(err){
      //如果错误抛出错误,阻止下面代码执行,
      //这里使用throw抛出错误,原因是可能写入错误的原因能有很多种
      //可能是文件只读权限,可能是写入失败,throw可以确定文件写入失败的原因
      if(err){
        throw err
      }
      //如果成功执行下面代码
      console.log("write succeed!")
    })
    
    writeSucceed.png
    checkFile.png

    使用node读取文件

    我们读取一下刚才我们写好的文件

    //引入node的文件操作fs核心模块
    var fs = require("fs")
    //使用readFile API,传入读取路径,指定格式,接收回调
    //第一个参数一定是err,第二个参数是读取的文件内容
    fs.readFile("./data/hello.txt",'utf8',function(err,data){
      //如果有错误,抛出错误,阻止下面代码的执行,也可以使用return
      if(err){
        throw err
      }
      console.log(data)
    })
    
    readFile.png

    如果不加第二个utf8这个参数,那么默认是加载16进制的Buffer对象。我们如果想要输出字符串,需要手动对返回的data进行转换,toString()的默认参数就是utf8。

    //引入node的文件操作fs核心模块
    var fs = require("fs")
    //使用readFile API,传入读取路径,指定格式,接收回调
    //第一个参数一定是err,第二个参数是读取的文件内容
    fs.readFile("./data/hello.txt",function(err,data){
      //如果有错误,抛出错误,阻止下面代码的执行,也可以使用return
      if(err){
        throw err
      }
      console.log(data)
      console.log(data.toString())
      console.log(data.toString("utf8"))
    })
    
    image.png

    相关文章

      网友评论

        本文标题:Node学习day01——认识node和简单读写文件

        本文链接:https://www.haomeiwen.com/subject/ocimkctx.html